딥 러닝에 줄 검색 방법이 사용됩니까? 왜 안돼?


18

온라인 많은 자습서에서 그라디언트 디센트에 대해 이야기하고 거의 모든 단계가 고정 단계 크기 (학습 속도 )를 사용합니다. 검색 (예 : 역 추적 라인 검색 또는 정확한 라인 검색)을 사용하지 않는 이유는 무엇 입니까?α


5
"거의 대부분은 고정 된 스텝 크기를 사용합니다"-확실합니까? "학습 속도" 하이퍼 파라미터는 단계 크기를 조건에 맞게 조정해야합니다. 매우 인기있는 Adam 알고리즘 이 단계 크기를 조정합니다
Aksakal

1
흠, 실제로 적응 형 스텝 크기 그라디언트 방법은 적어도 2011 년부터 사용되어 왔으며 Wikipedia Stochastic 그라디언트 하강 페이지 에서도 인용됩니다 . 정확히 핫 뉴스는 아닙니다. 바닐라 SGD조차도 거의 항상 반복 횟수 ( 스케줄 )에 따라 학습 속도와 함께 사용됩니다 . 이제 아주 좋은 질문은, 왜, 왜 너무 많은 적응 적 경사 하강 방법이 있어도 SGD가 여전히 딥 러닝 세계를 지배하고 있습니까? 질문은 생각보다 훨씬 덜 사소합니다.
DeltaIV

1
역 추적 라인 검색은 방향을 수정 한 다음 기능을 줄일 수있는 방법을 찾습니다. 따라서 검색 방향을 지능적으로 선택하는 방법이 없다면 지루한 최적화가 시작됩니다.
Alex R.

1
라인 검색이 SGD에 적합하지 않다는 것을 알 수 없습니다.
seanv507

3
라인 검색이 인기가없는 이유는 그라디언트 디센트의 배치입니다. 배치를 얻은 다음 그라디언트를 계산하십시오. 그라디언트의 노이즈로 인해 선을 앞뒤로 움직이는 것은 의미가 없습니다. 단계 크기를 어닐링하면서 다음 배치를 계속 사용하는 것이 좋습니다.
Aksakal

답변:


14

바닐라 그래디언트 디센트는 라인 검색을 사용하여보다 안정적으로 만들 수 있습니다. 나는 이것을하는 알고리즘을 작성했으며 매우 안정적인 알고리즘을 만듭니다 (반드시 빠르지는 않지만).

그러나 확률 적 그라디언트 방법에 대한 라인 검색은 거의 의미가 없습니다 . 내가 말하는 이유는 전체 손실 함수를 최소화하여 라인 검색을 수행하면 확률 론적 방법을 수행하는 주요 동기 중 하나를 즉시 잃었 기 때문입니다. 이제 각 업데이트에 대해 전체 손실 함수를 계산해야합니다. 일반적으로 전체 1 차 도함수를 계산하는 데 필적하는 계산 비용이 있습니다. 계산 비용으로 인해 전체 기울기를 계산하지 않으려는 경우 전체 손실 함수를 계산해도 괜찮을 것 같지 않습니다.

또는 무작위로 샘플링 된 데이터 포인트를 기반으로 라인 검색과 같은 작업을 수행 할 수도 있습니다. 그러나 이것은 좋은 생각이 아닙니다. 이것은 너무 멀리 밟았는지 여부에 대해 아무 것도 알려주지 않습니다 (줄 검색의 주요 이점). 예를 들어 로지스틱 회귀를 수행한다고 가정합니다. 그런 다음 각 결과는 단순히 0 또는 1이고, 하나의 샘플에 따라 우리의 회귀 매개 변수에 대한 최적의 솔루션을 하찮게 그래서 단일 샘플, 우리는 사소 완벽한 분리를 얻을 또는 Hauck는 도너 효과에 의해. 그 좋지 않다.

편집하다

@DeltaIV는 이것이 개별 샘플뿐만 아니라 미니 배치에도 적용된다고 지적합니다.


4
아주 좋았지 만 (+1), 마지막 예제에서 왜 단일 샘플에 대해 이야기하는지 모르겠습니다. 미니 배치를 기반으로 라인 검색을 계산하는 것은 의미가 없지만 미니 배치에는 여전히 512 샘플 (일반적으로 ImageNet에 대해 이야기 할 때)이 포함되어 있습니다. 물론 미니의 샘플 수에는 고정 된 값이 없습니다. -일괄 처리하지만 샘플 1 개의 미니 배치는 약간 극단적 인 느낌이 듭니다. 당신의 요점을 더 명확하게하기 위해 그것들을 사용 했습니까, 아니면 뭔가 빠졌습니까?
DeltaIV

2
@DeltaIV : 단일 샘플은 주로 매우 간단한 문제로 인해 얼마나 나쁜지에 대한 지적입니다. 512+ 공변량으로 로지스틱 회귀 분석에서 512 개 샘플로 미니 배치를 수행 한 경우 동일한 문제가 발생합니다.
Cliff AB

10

이 자습서에서는 그라디언트 디센트에 대해 이야기합니다. 최적화에 사용되는 가장 간단한 알고리즘 중 하나이므로 설명하기 쉽습니다. 이러한 자습서는 대부분 간단하기 때문에 간단한 내용에 중점을 둡니다. 딥 러닝에 사용되는 단순한 기울기 하강을 넘어서는 몇 가지 인기있는 최적화 알고리즘이 있습니다. 실제로 사람들은 대개 다른 알고리즘을 사용하지만 일반적으로 더 빨리 수렴하기 때문에 경사 하강입니다. 그들 중 일부는 일정하지 않은 학습률을 가지고 있습니다 (예 : 시간이 지남에 따라 감소). 이러한 알고리즘을 검토하려면 Sebastian Ruder (또는 arXived paper )가 게시 한 그래디언트 디센트 최적화 알고리즘 개요를 확인하십시오 .


2
@DeltaIV : 모든 "기타"멋진 방법은 SGD를 기반으로합니다. 주된 문제는 다른 방법이 기울기를 계산하기 위해 점을 무작위로 샘플링하는 것보다 로컬 지식을 활용하여보다 효율적인 점프를 만드는 것입니다. 그러나 SGD는 매우 간단하고 빠르며 자체적으로 완전히 끔찍한 것은 아닙니다.
Alex R.

2
@AlexR. 요점은 SGD가 단순하거나 빠르다는 것입니다. 모든 괜찮은 라이브러리가 SGD, Adam, AdaGrad 및 RMSProp (및 더 많은 경우)을 구현하므로 단순성은 중요하지 않습니다. 예를 들어 Adam과 같이 매개 변수 수준 업데이트를 계산하는 데 소요되는 시간이 ResNet과 같은 모델의 전체 교육 시간과 비교하여 무한하므로 속도가 훨씬 중요합니다. 유일한 요점은 어떤 이유로 오늘날 우리가 완전히 이해하지 못하기 때문에 SGD가 그보다 더 잘 일반화한다는 것입니다. 그래서 기본적으로 당신이 SOTA을 이길 원한다면, 당신은 종종있어 강제 를 사용하거나 적어도 교육 과정에 나중에로 전환 할 수 있습니다.
DeltaIV

3
@DeltaIV 매우 흥미 롭습니다. 나는 당신이 연결 한 논문을 열었고, 그것은 SGD가 Adam 등보다 일반화되었다는 주장에 대한 Wilson et al 2017 preprint를 참조합니다 . "잘 알려져있다"고 말할 때, 반 년 정도부터 잘 알려진 것을 의미합니까?
amoeba는

2
@DeltaIV 감사합니다. 나는 딥 러닝을 많이하지 않았으며 전혀 알지 못했다. 내가 Hinton의 Coursera 강의를보고있을 때 2012 년쯤에 그는 주로 RMSprop를 옹호하고 있었고 최근 1-2 년 동안 모든 사람들이 Adam (RMSprop를 대체하는 RMSprop를 대체 함)을 사용하고 있다는 인상을 받았습니다. 작년 에 오토 인코더를 가지고 놀았을 때 , Adam은 SGD보다 훨씬 빠르게 작동한다는 것을 깨달았으며, 그 이후로 Adam은 오늘날의 기본 선택이라고 가정했습니다.
amoeba는 Reinstate Monica

3
@CliffAB 네, 초기 정지와 정규화 사이의 관계는 최소 제곱에 대해 명확하게 볼 수 있습니다. 여기서 경사 하강은 고유 값 기준으로 작동 하고 작은 고유 값은 수렴 할 마지막 값입니다. 릿지 페널티는 또한 작은 고유 값에 불이익을줍니다. 나는 이제 Wilson et al. 위에 링크되어 있지만 최소한 SGD와 Adam의 최소 제곱의 예 에서는 조기 정지와 늦은 정지로 설명 하지 않습니다 . 그들은 다른 솔루션으로 수렴한다고 주장합니다.
amoeba는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.