티스토리 뷰

Machine Learning -1주차 

:손실줄이기


아래 내용은 구글 머신러닝 단기집중과정을 학습하고 발췌한 내용입니다.


| 반복방식


  • 머신러닝에서는 반복을 통해 손실을 줄인다.
  • 최적의 모델을 가능한 한 가장 효율적으로 찾는 것이 중요하다.

그림 1. 반복방식의 모델 학습

위의 그림은 알고리즘이 모델을 학습하는 데 사용하는 반복적인 시행착오 과정을 보여준다.

반복전략은 주로 대규모 데이터 세트에 적용하기 용이하여 머신러닝 에서 널리 사용 되고 있다.

이 '모델'은 하나 이상의 특성을 입력하여 하나의 예측(y')을 출력한다. 쉬운 이해를 위해, 하나의 특성을 가지고 하나의 예측을 반환하는 모델을 생각해 보자,

y=b+w1x1

b w1의 초기값은 무엇으로 설정해야 할까? 선형 회귀 문제에서는 초기값은 별로 중요치 않다.

임의의 값을 정해도 되지만 일단은 다음 값을 사용한다.

  • b = 0
  • w1 = 0

최초 특성 값이 10이라고 가정하자. 이 특성 값을 예측 함수에 입력하면 다음과 같이 출력된다.

  y' = 0 + 0(10)
  y'
= 0

위의 다이어그램에서 '손실 계산' 과정은 이 모델에서 사용할 손실 함수이다. 제곱 손실 함수를 사용한다고 가정해보자. 손실 함수는 두 개의 입력 값을 취한다.

  • y': 특성 x에 대한 모델의 예측 값입니다.
  • y: 특성 x에 대한 올바른 라벨입니다.

마침내 다이어그램의 '매개변수 업데이트 계산' 과정에 도달했습니다. 이 지점에서 머신러닝 시스템은 손실 함수의 값을 검토하여 b w1의 새로운 값을 생성한다. 

위 그림에서의 녹색 상자에서 새로운 값을 만든 다음 머신러닝 시스템이 이러한 모든 특성을 모든 라벨과 대조하여 재평가하여 손실 함수의 새로운 값을 생성하여 새 매개변수 값을 출력한다고 가정해보자. 그런 다음 알고리즘이 손실 값이 가장 낮은 모델 매개변수를 발견할 때까지 반복 학습한다. 

보통 전체 손실이 변하지 않거나 매우 느리게 변할 때까지 계속 반복합니다. 이때 모델이 수렴했다고 말한다.

| 경사하강법


앞에서 매개변수 업데이트 계산 이라는 두루뭉술한 말로 표현했는데 이 것을 더 실질적인것으로 대체해보자.


 w1의 가능한 모든 값에 대해 손실을 계산할 시간과 컴퓨팅 자료가 있다고 가정하자. 


지금까지 살펴본 것과 같은 회귀 문제에서 손실과 w1을 대응한 도표는 항상 볼록 함수 모양을 할 것이다. 즉, 도표가 다음과 같이 항상 그릇 모양으로 나타난다.

그림 2. 회귀 문제에서는 볼록 함수 모양의 손실 대 가중치 도표가 산출


전체 데이터 세트에 대해 상상할 수 있는 모든 w1값의 손실 함수를 계산하는 것은 수렴지점을 찾는데 비효율 적인 방법. 머신러닝에서 널리 사용하는 더나은 방법인 경사하강법이 있다.


경사하강법의 단계


1. w1에 대한 시작 값(시작점) 찾기, 시작점은 별로 중요하지 않다. 따라서 많은 알고리즘에서는 w1을 0으로 설정하거나 임의의 값을 선택


그림 3. 경사하강법의 시작점


2. 경사하강법 알고리즘은 시작점에서 손실 곡선의 기울기 계산, 기울기는 편미분 벡터 어느 방향이 더 정확한지 부정확한지 알려줌. 그림3에 나온것과 같이 단일 가중치에대한 손실의 기울기 값은 미분 값.


3. 기울기는 항상 손실 함수 값이 가장 크게 증가하는 바향을 향함. 경사하강법 알고리즘은 가능한 빨리 손실을 줄이기 위해 기울기의 반대 방향으로 이동.


그림 4. 경사하강법은 음의 기울기를 사용.


4. 손실 함수 곡선의 다음 지점을 결정하기 위해 경사하강법 알고리즘은 다음과 같이 기울기의 크기의 일부를 시작점에 더함.




그림 5. 기울기 보폭을 통해 손실 곡선의 다음 지점으로 이동.


5.그런다음 이과정을 반복해 최소값에 점점 접근


| 학습률


  • 경사 하강법 알고리즘은 기울기에 학습률 또는 보폭이라 불리는 스칼라를 곱하여 다음 지점을 결정합니다. 예를 들어 기울기가 2.5이고 학습률이 0.0.1이면 경사하강법 알고리즘은 이전 지점으로부터 0,025 떨어진 지점을 다음 지점으로 결정합니다.
  • 초매개변수는 프로그래머가 머신러닝 알고리즘에서 조정하는 값입니다. 대부분의 머신러닝 프로그래머는 학습률을 미세 조정하는 데 상당한 시간을 소비합니다. 

그림6. 학습률이 너무 작다.


위 그림과 반대로 학습률을 너무 크게 설정하면 양자역학 실험을 잘못한 것처럼 다음지점이 곡선의 최저점을 무질서하게 이탈할 우려가 있다.



그림 7. 학습률이 너무 크다.


그림 8. 적절한 학습률


  • 모든 회귀 문제에는 골디락스 학습률이 있다. 
  • 골디락스 값은 손실 함수가 얼마나 평탄한지 여부와 관련이 있다. 손실 함수의 기울기가 작다면 더 큰 학습률을 시도해볼 수 있다. ( 많은 보폭을 이동해도 최솟값을 지나칠 확률이 적기때문)
  • 이렇게 하면 작은기울기를 보완하고 더 큰 보폭을 만들어 낼수 있다.
| 확률적 경사하강법
  • 경사하강법에서 배치는 단일 반복에서 기울기를 계산하는 데 사용하는 예의 총 개수. 

  • 지금까지는 배치가 전체 데이터 세트라고 가정했습니다. 하지만 Google 규모의 작업에서는 데이터 세트에 수십억, 수천억 개의 예가 포함되는 경우가 많다. 또한 대개 Google 데이터 세트에는 엄청나게 많은 특성이 포함되어 있습니다. 따라서 배치가 거대해질 수 있습니다. 배치가 너무 커지면 단일 반복으로도 계산하는 데 오랜 시간이 걸릴 수 있다.

  • 무작위로 샘플링된 예가 포함된 대량의 데이터 세트에는 중복 데이터가 포함되어 있을 수 있습니다. 실제로 배치 크기가 커지면 중복의 가능성도 그만큼 높다. 적당한 중복성은 노이즈가 있는 기울기를 평활화하는 데 유용할 수 있지만, 배치가 거대해지면 예측성이 훨씬 높은 값이 대용량 배치에 비해 덜 포함되는 경향이 있다.

  • 만약에 훨씬 적은 계산으로 적절한 기울기를 얻을 수 있다면 어떨까? 데이터 세트에서 예를 무작위로 선택하면 (노이즈는 있겠지만) 훨씬 적은 데이터 세트로 중요한 평균값을 추정할 수 있다.

  • 확률적 경사하강법(SGD)은 이 아이디어를 더욱 확장한 것으로서, 반복당 하나의 예(배치 크기 1)만을 사용합. 반복이 충분하면 SGD가 효과는 있지만 노이즈가 매우 심하다. '확률적(Stochastic)'이라는 용어는 각 배치를 포함하는 하나의 예가 무작위로 선택된다는 것을 나타낸다.

  • 미니 배치 확률적 경사하강법(미니 배치 SGD)는 전체 배치 반복과 SGD 간의 절충안. 미니 배치는 일반적으로 무작위로 선택한 10개에서 1,000개 사이의 예로 구성. 미니 배치 SGD는 SGD의 노이즈를 줄이면서도 전체 배치보다는 더 효율적.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함