티스토리 뷰

Learning rate

learning rate는 단순하게 보면 숫자에 불과하고 그 숫자는 프로그래밍에서처럼 "크다, 작다, 같다"의 3가지로 나누어질 수 있다.

Large learning rate : overshooting and undershooting


overshooting은 learning rate가 너무 커서 왼쪽그림과 같이 경사면을 타고 내려오는 것이 아닌 올라가는 현상을 말한다. 


오른쪽 그림은 learning rate가 너무 작을 때를 보여준다. 한참을 내려갔음에도 최저점에 도착하지 못했다. 반복 수를 늘려 최저점에 도달할 수도 있겠지만 그럴 경우 3일이면 끝날게 3주가 거릴 수도 있다.


따라서 learning rate가 너무 크거나 너무 작지 않게 조절해 주는 것이 핵심이다. 하지만 그것은 많은 경험이 있어야 한다. 지금은 다행히 learning rate를 조절해 주는 프로그램이 있어 크게 문제 되지는 않는다.


Data (x) preprocessing for gradient descent

선처리란 어떤 일을 본격적으로 하기 전에 진행되는 준비 작업을 가리킨다. 우리가 기본적으로 준비해야 하는 선처리의 이상적인 모습은 위의 그림과 같은 모습이다.


그렇다면 좋지 않은 경우는 무엇인지 알아보겠다.

x1 변수는 10보다 작은 숫자, x2 변수는 -5000에서 9000까지의 숫자라면 진짜 동그랗게 생긴 원의 모양이 아니라 한쪽으로 길게 늘어진 타원 모양이 된다. 이렇게 된다면 수평으로 이동할 때와 수직으로 이동할 때 엄청난 불균형이 발생하게 되어 gradient descent 알고리듬을 적용하기 어려운 상황이 될 수 있다.

등고선으로 표현할 때, 가장 좋은 형태는 완변하게 둥근 원(circle)이다. 수평과 수직으로 동일한 범위를 갖게 만들면 가장 이상적인 원이 된다. gradient descent 알고리듬을 적용하기 전에 preprocessing 작업으로 데이터의 범위를 제한할 수 있다.


데이터를 preprocessing하는 두 가지를 보여준다. 최초 데이터는 중심에서 빗겨있는 상태이고, 한쪽 방향으로 길게 늘어진 형태이다. 데이터 전체가 중심에 올 수 있도록 이동시킬 수도 있고, 원에 가까운 형태로 만들 수도 있다.


Feature Scaling

Feature Scaling은 변수의 범위를 일정하게 혹은 비교할 수 있도록 만드는 것을 말한다. Normalization(Re_scaling)과  Standardization의 두 가지가 있다.

Standardization

Standardization은 특정한 분포(ex. 정규분포)들의 평균과 분산 혹은 표준편차를 이용해 "속성값-평균/표준편차"로 해당 분포에서의 이 속성값이 평균으로부터의 위치를 표준편차 단위로 옮겨서 다시 나타낸 것이다.


수식 : (요소값 - 평균) / 표준편차
 설명 : 평균까지의 거리로, 2개 이상의 대상이 단위가 다를 때, 대상 데이터를 같은 기준으로 볼 수 있게 해줌

Normalization

Normalization은 "해당 속성(변수)값 - 최소값/ 최대값-최소값"으로 0 ~1사이의 값으로 나타내는 척도법이다.


수식 : (요소값 - 최소값) / (최대값 - 최소값)

설명 : 전체 구간을 0 ~ 100으로 설정하여 데이터를 관찰하는 바업으로, 특정 데이터의 위치를 확인할 수 있게 해준다.




------------------------------------------

이 글은 모두를 위한 딥러닝을 듣고 정리한 글입니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함