[Deep Learning: 신경망의 기초]Deep Learning 최적화
심층학습 최적화
활성함수
- 선형 연산 결과인 활성값 $z$에 비선형 활성함수 $\tau$를 적용하는 과정(은닉층에서 일어남)
- 활성함수 변천사
- 선형 -> 계단 -> tanh -> ReLU
- sigmoid 함수는 활성값이 커지면 포화 상태가 되고 경사도가 0에 가까운 값을 출력함 -> 매개변수 갱신(학습)이 매우 느린 요인
- ReLU(Rectified Linear Unit) 활성함수
- 경사도 포화(gradient saturation) 문제 해소
- 0을 기점으로 해서 그 이전것은 0이고, 0 이후부터는 linear하게 자기자신을 내보냄.
- $z = w^T\widetilde{x} + b$
- $y = ReLU(z) = max(0, z)$
- 0과 자기 값을 비교해서 자기 값이 0보다 작으면 0을 출력, 자기 값이 0보다 크면 그대로 출력
- ReLU의 변형
- Leaky ReLU(보통 $\alpha = 0.01$을 사용) : 자기자신 z가 0보다 크면 0 z 출력, 0보다 작은 경우 $\alpha z$ 출력
- Parametric ReLU($\alpha$를 학습으로 알아냄)
- 경사도 포화(gradient saturation) 문제 해소
- 다양한 활성함수들
- Sigmoid
- tanh
- ReLU
- Leaky ReLU
- Maxout
- ELU
- 최근의 활성 함수들은 다음의 문제들을 해결하고자 함
- 포화된 영역이 경사도가 작아짐
- 출력값이 영 중심 아님
- 다소 높은 연산량
배치 정규화
- 공변량 변화(covariate shift) 현상
- 훈련집합과 테스트집합의 분포가 다름
- 내부의 공변량 변화(internal covariate shift)
- 학습이 진행되면서 첫번째 층의 매개변수가 바뀜에 따라 바뀜 -> 두번째 층 입장에서 보면 자신에게 입력되는 데이터의 분포가 수시로 바뀌는 셈
- 층2, 층3, … 으로 깊어짐에 따라 더욱 심각 -> 학습을 방해하는 요인으로 작용
- 배치 정규화(batch normalization)
- 공변량 시프트 현상을 누그러뜨리기 위해 정규화를 층 단위로 적용하는 기법
- $x_i^{new} = {x_i^{old} - \mu_i \above 1pt \sigma_i}$
- 정규화를 적용하는 곳이 중요
- 위 식을 어디에 적용할 것인가?(적용위치)
- $z = w^T\widetilde{x} + b$
- $y = \tau(z)$
- 입력 또는 중간결과 중 어느 것에 적용? -> 중간결과에 적용하는 것이 유리. 액티베이션함수를 통과하기 이전.
- 위 식을 어디에 적용할 것인가?(적용위치)
- 훈련집합 전체 또는 미니배치 중 어느 것에 적용?(적용단위)
- 미니배치에 적용하는 것이 유리
- 공변량 시프트 현상을 누그러뜨리기 위해 정규화를 층 단위로 적용하는 기법
- 배치 정규화 과정
- 미니배치 단위로 평균($\mu$)과 분산($\sigma$) 계산
- 구한 평균과 분산을 통해 정규화
- 비례($\gamma$)와 이동($\beta$) 세부 조정
- 배치 정규화 장점
- 신경망의 경사도 흐름 개선
- 높은 학습률 허용
- 초기화에 대한 의존성 감소
- 의도하지 않았지만 규제와 유사한 행동을 하며, 드롭아웃의 필요성을 감소시킴
배치 정규화
- 정규화 변환을 수행하는 코드
- 미니배치에 $x_i^{new} = {x_i^{old} - \mu_i \above 1pt \sigma_i}$를 적용하여 코드1을 수행
- 즉, 미니배치 단위로 노드마다 독립적으로 코드1을 수행
- 비례($\gamma$)와 이동($\beta$)는 노드마다 고유한 매개변수로서 학습으로 알아냄
- 코드1:
- 미니배치 평균 구하기
- 미니배치 분산 구하기
- 정규화하기
- 비례(scale)와 이동(shift)구하기
- 최적화를 마친 후 추가적인 후처리 작업 필요
- 각 노드는 전체 훈련집합을 가지고 독립적으로 코드2를 수행
- 코드2:
- 배치단위의 평균과 분산들을 다시한번 평균 내기
- 노드에 평균, 분산, 비례, 이동 저장하기(예측 단계에서 아래 식의 변환을 수행하기 위함)
- 예측 단계
- 각 노드는 독립적으로 식을 적용하여 변환(코드1의 마지막 두 라인을 수행하는 셈)
- $z’ = {\gamma \above 1pt \sqrt{\sigma^2 + \varepsilon}}z + (\beta - {\gamma \mu \above 1pt \sqrt{\sigma^2 + \varepsilon}})$
- CNN에서는 노드 단위가 아니라 특징 맵 단위로 코드1과 코드2를 적용
- 예를 들면, 특징 맵(피쳐맵)의 크기가 p * q라면 미니배치에 있는 샘플마다 pq개의 값이 발생. 코드 1은 총 pqm개의 값을 가지고 $\mu_B$와 $\sigma_B^2$를 계산. 비례($\gamma$)와 이동($\beta$)은 특징 맵마다 하나씩 존재.
- 배치 정규화의 긍정적 효과를 측정한 실험사례
- 가중치 초기화에 덜 민감함
- 학습률을 크게 하여 수렴 속도 향상 가능
- sigmoid 활성함수로 사용하는 깊은 신경망도 학습이 이루어짐
- 규제 효과를 제공하여 드롭아웃을 적용하지 않아도 높은 성능
규제의 필요성과 원리
- 과잉적합에 빠지는 이유와 과잉적합을 피하는 전략
- 규제의 정의
과잉적합에 빠지는 이유와 과잉적합(오버피팅)을 피하는 전략
- 학습 모델의 용량에 따른 일반화 능력
- 대부분 가지고 있는 데이터에 비해 훨씬 큰 용량의 모델을 사용
- VGGNet은 분류층(Fully Connected)에 1억 2천 1백만 개의 매개변수를 가짐(매개변수가 많다 = 용량이 크다)
- 훈련집합을 단순히 ‘암기’하는 과잉적합(오버피팅)에 주의를 기울여야 함
- 현대 기계 학습의 전략
- 충분히 큰 용량의 모델을 설계한 다음, 학습 과정에서 여러 규제 기법을 적용
- 충분히 큰 용량의 모델을 설계한 다음, 학습 과정에서 여러 규제 기법을 적용
규제의 정의
- 규제는 오래 전부터 수학과 통계학에서 연구해온 주제
- 모델 용량에 비해 데이터가 부족한 경우의 부족조건문제를 푸는 접근법
- 적절한 가정을 투입하여 문제를 품 -> ‘입력과 출력 사이의 변환은 매끄럽다’는 사전 지식
- 유사한 데이터는 가깝게 매핑된다.
- 대표적인 티호노프의 규제기법은 매끄러움 가정에 기반을 둔다.
- 규제를 적용한 목적함수 = 목적함수 + 람다*규제항
- 통계에서는 릿지 회귀, 기계학습에서는 가중치 감쇄 등이 대표적임
- 현대 기계 학습도 매끄러움 가정을 널리 사용함
- 가중치 감쇠 기법 : 모델의 구조적 용량을 충분히 크게 하고, ‘수치적 용량’을 제한하는 규제 기법
- 비지도 학습 : 구조에 특화되어있음.
- “Deep Learning”책의 정의 : 일반화 오류를 줄이려는 의도를 가지고 학습 알고리즘을 수정하는 모든 방법
규제 기법
- 가중치 벌칙
- 조기 멈춤
- 데이터 확대
- 드롭 아웃
- 앙상블 기법
- 명시적 규제와 암시적 규제
- 명시적 규제: 가중치 감쇠나 드롭아웃처럼 목적함수나 신경망 구조를 직접 수정하는 방식
- 암시적 규제: 조기 멈춤, 데이터 증대, 잡음 추가, 앙상블처럼 간접적으로 영향을 미치는 방식
가중치 벌칙
- 티호노프의 규제기법에서
- $J_{regularized}(\Theta;X,Y) = J(\Theta;X,Y) + \lambda R(\Theta)$
- 규제를 적용한 목적함수 = 목적함수 + 람다*규제항
- 규제항은 훈련집합과 무관하며, 데이터 새성 과정에 내재한 사전 지식에 해당
- 규제항은 매개변수를 작은 값으로 유지하므로 모델의 용량을 제한하는 역할(수치적 용량을 제한함)
- 1차는 언더피팅되고, 10차는 오버피팅되던 것을 기억하라!
- 규제항 $R(\Theta)$로 무엇을 사용할 것인가?
- 큰 가중치에 벌칙을 가해 작은 가중치를 유지하려고 주로 L2놈이나 L1놈을 사용
- 규제항은 작은 가중치를 쓰기 위해 하는 것이다. 예를 들어 10차는 오버피팅 되므로 8차까지만 발현되게 하는 것이다.
- L2놈(norm)
- 가중치 벡터에 L2놈을 사용하는 것은 그 벡터(가중치)의 크기를 재는 것이다.
- 규제 항 R로 L2놈을 사용하는 규제 기법을 ‘가중치 감쇠’라 부름
- $J_{regularized}(\Theta;X,Y) = J(\Theta;X,Y) + \lambda \left | \Theta \right |_{2}^{2}$
- 위 식의 경사도 계산
- $J_{regularized}(\Theta;X,Y) = \bigtriangledown J(\Theta;X,Y) + 2 \lambda \Theta$
- $J_{regularized}(\Theta;X,Y) = \bigtriangledown J(\Theta;X,Y) + 2 \lambda \Theta$를 이용하여 매개변수를 갱신하는 수식
- $\Theta = (1-2\rho \lambda)\Theta - \rho\bigtriangledown J$
- 가중치 감쇠는 단지 $\Theta$에 $(1 - 2 \rho \lambda) = 0.96$
- 최종해를 원점 가까이 당기는 효과(즉, 가중치를 작게 유지함) = 가중치 감쇠(decay) 효과
- 선형회귀(linear regression)에 적용
- 선형 회귀는 훈련집합이 주어지면 다음 식을 풀어 w를 구하는 문제이다.
- $w_1x_{i1} + w_2x_{i2} + … + w_dx_{id} = x_i^Tw = y_i$
- 위 식을 행렬식으로 바꿔 쓰면,
- $Xw = y$
- 가중치 감쇠를 적용한 목적함수
- $J_regularized(w) = \left | Xw - y \right |{2}^{2} + \lambda\left | w \right |{2}^{2} = (Xw - y)^T(Xw - y) + \lambda\left | w \right |_{2}^{2}$
- L1규제 - Lasso regression(규제항으로 L1놈을 썼을 때)
- L2규제 - Ridge regression(규제항으로 L2놈을 썼을 때)
- 위 식을 미분하여 0으로 놓은 뒤 w에 대해 정리하면
- $\widehat{w} = (X^TX + 2\lambda I)^{-1}X^Ty$
- 공분산 행렬 $X^TX$의 대각 요소가 $2\lambda$만큼씩 증가 -> 역행렬을 곱하므로 가중치를 축소하여 원점으로 당기는 효과
- 예측 단계에서는 $y = x^T\widehat{w}$
- L1놈
- L2놈은 루트에 제곱한 것, L1놈은 크기에 절대값을 씌운 것
- 규제 항으로 L1놈을 적용하면,
- $J_regularized(w) = J(\Theta; X, Y) + \lambda\left | \Theta \right |_1$
- 미분하면,
- $J_regularized(w) = \bigtriangledown J(\Theta; X, Y) + \lambda sign(\Theta)$
- 매개변수를 갱신하는 식에 대입하면,
- $\Theta = \Theta - \rho \bigtriangledown J(\Theta; X, Y) - \rho \lambda sign(\Theta)$
- 매개변수를 갱신하는 식
- $\Theta = \Theta - \rho \bigtriangledown J - \rho \lambda sign(\Theta)$
- L1놈의 희소성(sparsity) 효과(0이 되는 매개변수가 많음)
- 선형 회귀에 적용하면 특징 선택 효과
- 선형 회귀에 적용하면 특징 선택 효과
- 비유하자면 다음과 같다.
- L2놈 : 1, 1, 1을 1/2, 1/2, 1/2로 만드는 것. 보통 L2놈을 많이 쓴다.
- L1놈 : 1, 1, 1을 0, 0, 1로 만드는 것. 의미를 찾거나 특징을 selection할 때 주로 쓴다.
- 규제
- $J_{regularized}(\Theta;X,Y) = J(\Theta;X,Y) + \lambda R(\Theta)$
- 규제를 적용한 목적함수 = 목적함수 + 람다*규제항
- 람다는 규제를 얼마나 줄 지에 대한 “선호도”이다.
- 목적함수: 적용된 충분한 학습 모델로 훈련집합의 예측한 오차
- 규제: 학습 모델이 훈련집합의 예측을 너무 잘 수행하지 못하도록 방지(오버피팅 방지)
- 효과
- 가중치에 대한 선호도 표현(가중치에 대해 얼마나 자유도를 줄 것인지 조절)
- 학습 모델을 단순화시킴으로 일반화 성능 향상 시킴
- 매끄럽게 하여 최적화 개선
- 대표적인 예
- L2 규제: $R(W) = \sum_{k}\sum_{l}W_{k,l}^2$
-
L1 규제: $R(W) = \sum_{k}\sum_{l}\left W_{k,l} \right $ - 엘라스틱 넷(L1, L2놈을 적절하게 섞은 것): $R(W) = \sum_{k}\sum_{l} \beta W_{k, l}^2 + \left | W_{k,l} \right |$, (L1+L2)
조기 멈춤
- 학습 시간에 따른 일반화 능력
- 일정 시간이 지나면 과잉적합(오버피팅) 현상이 나타남 -> 일반화 능력이 저하됨.
- 즉 훈련 데이터를 단순히 암기하기 시작.
- 조기 멈춤(early stopping) 규제기법
- 검증집합의 오류가 최저인 점에서 학습을 멈춘다.
- 검증집합의 오류가 최저인 점에서 학습을 멈춘다.
데이터 확대
- 과잉적합 방지하는 가장 확실한 방법은 큰 훈련집합 사용
- 하지만 데이터 수집은 비용이 많이 드는 작업
- 데이터 확대 규제 기법
- 데이터를 인위적으로 변형하여 확대함 : 아핀 변환(이동, 회전, 반전)
- 자연계에서 벌어지는 잠재적인 변형을 프로그램으로 흉내내는 셈
- 한계: 아핀 변환은 수작업 변형, 모든 부류가 같은 변형 사용-> 이를 해결하기 위해 아래와 같은 변형들이 나옴.
- 예: 모핑을 이용한 변형
- 비선형 변환으로서 아핀 변환에 비해 훨씬 다양한 형태의 확대
- 학습 기반: 데이터에 맞는 ‘비선형 변환 규칙을 학습’하는 셈
- 예: 자연영상 확대
- 영상을 잘라내어 이동 효과, 좌우 반전
- PCA로 색상변환
- 예측 단계에서 잘라내고 좌우반전하여 앙상블 적용
- 예: 잡음을 섞어 확대
- 입력 데이터에 잡음 섞기
- 은닉 노드에 잡음을 섞기
드롭아웃
- 드롭아웃(dropout) 규제 기법
- 완전연결층의 노드 중 일정 비율(일반적으로 p=0.5 적용)을 임의 선택하여 제거 -> 남은 부분 신경망 학습
- 완전연결의 단점: 오버피팅 -> 드롭아웃으로 dense한 것을 sparse하게 만듦으로써 오버피팅 방지. 가중치들이 서로 비슷하게 동기화되어 학습되지 않고 특징별로 의미가 두드러지게 학습될 수 있음.(의미들이 세분화되고 부각됨)
- 많은 부분 신경망을 만들고, 앙상블 결합하는 기법
-
요즘엔 드롭아웃보다는 배치 노말라이제이션을 많이 쓴다.
- 신경망의 완전연결층(FC)에 드롭아웃 적용 알고리즘
- 입력: 드롭아웃 비율 $p_{input}, p_{hidden}$
- 출력: 최적해 $\Theta$
- 난수를 생성하여 초기해 $\Theta$를 설정한다.
- while(! 멈춤조건) // 수렴조건
- 미니배치 B를 샘플링한다.
-
for(i=1 to B ) // B의 샘플 각각에 대해 - 입력층은 $p_{input}$, 은닉층은 $p_{hidden}$ 비율로 드롭아웃을 수행한다.
- 드롭아웃된 부분 신경망 $\Theta_i^{dropout}$로 전방 계산을 한다.
- 오류 역전파를 이용하여 $\Theta_i^{dropout}$를 위한 그레디언트 $\bigtriangledown_i^{dropout}$를 구한다.
- 그레디언트들의 평균 $\bigtriangledown_{ave}^{dropout}$를 계산한다.
- $\Theta = \Theta - \rho \bigtriangledown_{ave}^{dropout}$ // 가중치 갱신
-
$\widehat{\Theta} = \Theta$
-
일반적으로 입력층 제거 비율 0.2, 은닉층 제거 비율 0.5로 설정
- 예측 단계
- 앙상블 효과 모방
- 학습 과정에서 가중치가(1-드롭아웃 비율)만큼만 참여했기 때문에 p만큼 보정
- 앙상블 효과 모방
- 메모리와 계산 효율
- 추가 메모리는 참거짓 배열 $\pi$, 추가 계산은 작음
- 실제 부담은 신경망의 크기에서 옴: 보통 은닉 노드 수를 $1 \above 1pt P_{hidden}$만큼 늘림
앙상블 기법
- 앙상블(ensemble)
- 서로 다른 여러 개의 모델을 결합하여 일반화 오류를 줄이는 기법
- 현대 기계학습은 앙상블도 규제로 여김
- 두 가지 일
- 서로 다른 예측기를 학습하는 일
- 서로 다른 구조의 신경망 여러 개를 학습 또는 같은 구조를 사용하지만 서로 다른 초기값과 하이퍼 매개변수를 설정하고 학습
- 배깅(bagging, bootstrap aggregating): 훈련집합을 여러 번 샘플링하여(복원추출) 서로 다른 훈련집합을 구성. 동시다발적으로 학습.
- 부스팅(boosting): i번째 예측기가 틀린 샘플을 i+1번째 예측기가 잘 인식하도록 연계성을 고려. 순차적으로 학습하여 서로 상호보완적인 관계가 되도록함.
- 서로 다른 구조의 신경망 여러 개를 학습 또는 같은 구조를 사용하지만 서로 다른 초기값과 하이퍼 매개변수를 설정하고 학습
- 학습된 예측기를 결합하는 일 -> 모델 평균(model average)
- 여러 모델의 출력에서 평균을 구하거나 투표하여 최종 결과 결정
- 여러 모델의 출력에서 평균을 구하거나 투표하여 최종 결과 결정
- 서로 다른 예측기를 학습하는 일
하이퍼 매개변수 최적화
- 학습 모델에는 두 종류의 매개변수가 있음
- 내부 매개변수(parameter) 혹은 가중치(weight)
- 신경망의 경우, 가중치 $\Theta$fh vyrl
- 학습 알고리즘이 최적화함
- 주어진 데이터로부터 결정됨
- 하이퍼 매개변수(hyper-parameter)
- 모델의 외부에서 모델의 동작을 조정함
- 사람에 의해서 결정됨
- 예: 은닉층의 개수, CNN의 필터 크기와 epoch, 학습률 등
- 모델의 외부에서 모델의 동작을 조정함
- 내부 매개변수(parameter) 혹은 가중치(weight)
- 하이퍼 매개변수 선택
- 표준 참고 문헌이 제시하는 기본값을 사용하면 됨
- 보토 여러 후보 값 또는 범위를 제시
- 후보 값 중에서 주어진 데이터에 최적인 값 선택 <- 하이퍼 매개변수 최적화
- 표준 참고 문헌이 제시하는 기본값을 사용하면 됨
- 하이퍼 매개변수 조합 생성을 구현하는 방법에 따라 수동탐색, 격자탐색, 임의 탐색
- 최근 학습을 통한 자동 탐색 방법들이 연구됨(자동화된 기계학습)
- 최근 학습을 통한 자동 탐색 방법들이 연구됨(자동화된 기계학습)
- 격자 탐색(grid search)과 임의 탐색(random search)
- 격자탐색은 격자모양으로 나눴을 때 교차점들에 위치한 것들을 탐색.
- 임의 탐색은 난수로 하이퍼 매개변수 조합을 생성함. 격자 탐색보다 임의 탐색이 좋다.
- 로그 공간(log space) 간격으로 탐색
- 어떤 하이퍼 매개변수는 로그 공간을 사용해야 함
- 학습률 범위가 있을 때 로그 공간 간격은 등 간격보다 2배 증가된 간격으로 공간을 조사한다.
- 차원의 저주 문제 발생
- 차원의 저주: 고차원이 될수록 그 안에서 의미있는 값을 찾기 위해서는 더 많은 데이터가 필요하다.
- 매개변수가 $m$개이고 각각이 $q$개 구간이라면 $q^m$개의 점을 조사해야 함
- 임의 탐색이 우월함
- 크게 하면서 경향성을 찾은 뒤 점차 세밀해지는 coarse-fine 탐색
- 크게 하면서 경향성을 찾은 뒤 점차 세밀해지는 coarse-fine 탐색
2차 미분을 이용한 최적화 방법
- 뉴턴 방법
- 켤레 경사도 방법
-
유사 뉴턴 방법
- 1차 미분을 사용하는 경사 하강법
- 현재 기계 학습의 주류 알고리즘
- 두 가지 개선책
- 경사도의 잡음을 줄임(미니배치, 모멘텀 사용 등)
- 2차 미분 정보를 활용
-
2차미분 방법보다는 1차미분 방법이 더 많이 쓰임! 아직 가야할 길이 멀다~ 하지만 1차 민분보다 효과적일 수 있는 가능성은 열려있다!
- 경사 하강법을 더 빠르게 할 수 있나?
- 1차 미분 정보로는 경사 하강법으로 해를 찾아가는 최단 직선 경로를 알 수 없음. 1차 미분은 현재 위치에서 지역적인 기울기 정보만 주기 때문. -> 뉴턴 방법(newton method)은 2차 미분 정보를 활용하여 사 하강법으로 해를 찾아가는 최단 직선 경로를 알아냄.
- 1차 미분 정보로는 경사 하강법으로 해를 찾아가는 최단 직선 경로를 알 수 없음. 1차 미분은 현재 위치에서 지역적인 기울기 정보만 주기 때문. -> 뉴턴 방법(newton method)은 2차 미분 정보를 활용하여 사 하강법으로 해를 찾아가는 최단 직선 경로를 알아냄.
- 1차 미분 최적화와 2차 미분 최적화 비교
- 1차 미분의 최적화
- 경사도 사용하여 선형 근사 사용
- 근사치 최소화
- 2차 미분의 최적화
- 경사도와 헤시안을 사용하여 2차 근사(2차 함수가 근사함수가 됨) 사용
- 근사치의 최소값
- 1차 미분의 최적화
뉴턴 방법
- 테일러 급수: 주어진 함수를 정의역에서 특정 점의 미분계수들을 계수로 가지는 다항식의 극한(멱급수)으로 표현함
- 테일러 급수를 적용하여 델타로 미분하면,
- $w+\delta$를 최소점이라 가정하면, ${\partial J(w + \delta) \above 1pt \partial \delta} \approx J’(w) + \delta J’‘(w) = 0$
- 식을 조금 정리하면,
- $\delta = -{J’(w) \above 1pt J’‘(w)} = -(J’‘(w))^{-1}J’(w)$
- 변수가 여러 개인 경우로 확장하면,
- $\delta = -H^{-1}\bigtriangledown J$
- $\delta = -H^{-1}\bigtriangledown J$
켤레 경사도 방법
- 직선 탐색(line search): 이동 크기를 결정하기 위해 직선으로 탐색하고, 미분
- 원래의 경사하강법의 직선탐색: 현재 점에서부터 2차로 근사화할때 근사하는 범위를 직선의 형태를 통해서 탐색하고, 이동할 크기(근사할 크기)에 따라 이동
- 켤레 경사도 방법(conjugate gradient method): 직전 정보를 사용하여 해에 빨리 접근. 이전에 썼던 방향과 현재의 방향 두가지를 이용해 새로운 방향을 찾고 근사한다. 뉴턴 방법에 비해 훨씬 빠르게 근사할 수 있다.
유사 뉴턴 방법
- 유사 뉴턴 방법(quasi-Newton methods)의 기본 개념
- 문제점
- 경사 하강법: 수렴 효율성 낮음
- 뉴턴 방법: 헤시안 행렬 연산 부담 -> 헤시안 H의 역행렬을 근사하는 행렬 M을 사용
- 대표적으로 점진적으로 헤시안을 근사화하는 LFGS가 많이 사용됨
- 기계 학습에서는 M을 저장하는 메모리를 적게 쓰는 L-BFGS를 주로 사용함
- 전체 배치를 통한 갱신을 할 수 있다면, L-BFGS 사용을 고려함
- 문제점
- 기계 학습에서 2차 미분 정보의 활용
- 현재 널리 활용되지는 않지만 연구 계속되고 있음
- 현재 널리 활용되지는 않지만 연구 계속되고 있음