머신러닝/딥러닝에 필요한 기초 수학 with 파이썬 본문
1장 머신러닝이란과 선형회귀
- 머신러닝이란 무엇인가?
- 말 그대로 컴퓨터에게 무언가를 가르치는 것. <- 인간은 이를 직관적으로 처리할 수 있다.
- 어떻게 가르칠까?
- 입출력의 관계를 가르친다 ( 지도 학습 )
- 관계를 어떻게 알까?
- 수학적으로 좋은 관계인지 아닌지 계산한다.
- 좋은 관계인지 아닌지 어떻게 알까?
- 좋은 관계이면 줄어드는 수치를 설정한다. ( Loss function=손실함수 or Objective Function=목적함수 )
- 이 수치란 어떻게 계산될까?
- 예측치와 타겟을 비교한다.
- 어떻게 비교할까?
- 좌표상에서 비교한다. 우리는 수식을 통해 어떤 관계나 가설을 나타낼 수 있다. ex) h = ax + b
- h stands for hypothesis
- h = ax + b는 인공신경망의 노드로 취급하면
- h = (a*x) + (b*1) 꼴로 생각할 수 있다.
- 이때, 입력:(x,1) , 출력:(a*x) + (b*1)이다.
- 입력에 곱해지는 벡터를 가중치라고 하며, w(볼드임) 라고 표현한다.
- 위에서 w = [w1,w2] 이며, w1 = a, w2 = b 라고 볼 수 있다.
- h(x,w) = w1*x + w2 라는 가설을 제시할 수 있다.
- 위의 가설을 좋은 가설인가? 이제 이 가설(예측치)와 타겟(레이블)을 비교한다.
- 비교하는 과정에서 발생하는 차이(손실)을 L(Loss Function)이라고 한다.
- 좋은 관계이면 수치가 줄어든다고 했는데, 우리는 이 가중치 w = [w1, w2] 를 조정하면서 관계를 수정함으로써 L을 줄일 수 있다.
- 손실함수를 줄이기 위해서, 급격히 변화하는 부분을 찾아, 그 반대 방향으로 그라디언트를 업데이트 한다. ( 뒤에서 다시 다룰 것임 )
- 자칫 잘못하면 손실이 커질 수 있는데, 이때 그라디언트에 에타( η)를 곱해서 조금씩 업데이트 한다.
- η는 lr ( Learning Rate )를 뜻한다. 보통은 1e-4~5 정도의 수치를 설정한다.
- 이러한 안전장치를 통해서, 최종적으로 가설을 좋은 관계가 되도록 안전하게 업데이트(최적화 할 수 있다)
- 다시, 머신러닝이란 컴퓨터를 통해 어떤 입력과 출력의 관계를 계산하여 잘 찾도록 최적화(개선) 하는 것을 말한다.
- 이 개선과정을 통계쪽에서는 회귀(regression), 비통계쪽에서는 피팅(fitting)이라고 한다.
- 머신러닝에는 다양한 문제 형태에 적용할 수 있는 여러 방법론이 있다.
- 마스터 알고리즘은 존재하지 않는다.
- 머신러닝 [ 지도 : 분류, 회귀 등, 비지도 : 군집화, 차원 축소 등, 강화학습 ]
- 현재로써는 지도학습이 맛있다.
*** 위의 예제 코드
- 좌) 가중치 업데이트를 통해 가설로 제시한 수식이 좋은 관계로 계선 되었음.
- 중) 관계가 개선됨에 따라서 loss 역시 iteration이 늘어날 수록 줄어들고 있음.
- 우) 관계가 개선됨에 따라서 weight update역시 변화율이 더디고 있음.
*** Loss Function ( MSE )에 대한 도함수 계산 손풀이.
np.dot(X.T,np.dot(random_weight,X)-Y)
'딥러닝 수학' 카테고리의 다른 글
머신러닝/딥러닝에 필요한 기초 수학 with 파이썬 (2장) (0) | 2024.07.16 |
---|