https://www.youtube.com/watch?v=IHZwWFHWa-w&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi&index=2&t=325s
기계학습은 근본적으로 특정한 함수의 최솟값을 찾는 일로 요약될 수 있습니다.
개념상 각 뉴런은 이전 층의 모든 뉴런과 연결되어있고.
가중치(Weight)는 연결의 세기라고 할 수 있고
편향(Bias) 뉴런이 활동적인지 비활동적인지를 나타내는 지표라고 할 수 있습니다.
학습을 위한 가장 첫번째 단계는 모든 가중치와 편향을 완전히 무작위로 설정하는 것 입니다.
이 신경망이 끔찍하게 작동할 것이라는건 아주 당연합니다.
그래서 우리가 할 일은 cost(비용)함수를 정의하는 것입니다.
코스트함수는 컴퓨터가 얼마나 틀렸는지를 알려주는 값이라고 생각하면 됩니다.
잘못된 출력값과 웒라는 출력차의 제곱을 모두 더하는 것입니다.
이제 수만가지의 트레인데이터셋에 대한 코스트를 검토하고 평균값을 계산합니다
여기서 기본적으로 신경망이 함수임을 기억해야합니다.
만약 분류를 잘했다면, 모델의 성능이 좋다면 코스트함수의 값이 작을 것이고
성능이 좋지않다면 코스트함수의 출력값이 클 것입니다.
모델의 목표는 성능을 좋게 하는 것이기 때문에 다시말하면 코스트함수의 값을 줄이는 것입니다.
이런 1차함수가 있다면 이 출력값을 최소화하는 입력값을 어떻게 찾을 수 있을까요
미적분을 배운사람이라면 정확하게 출력값을 최솟값으로하는 입력값을 알아낼 수 있을 것입니다.
하지만 항수가 많아진다면 항상 출력값을 최솟값으로하는 입력값을 알아 낼 순 없습니다.
저희가 풀어야하는 문제인 13002개의 인풋밸류가 있다면 알아내기가 더 어려워지겠죠.
이차원의 즉 두개의 입력변수가 있다고 가정하고
어떤 방향으로 입력변수들이 이동할때 손실함수가 작아지는지의 방향과 그 정도를 알아내야합니다.
이런식으로 반복적으로 그래디언트의 음의 방향으로 함수의 입력값을 이동하는 방식을
경사하강법(gradient desecent)이라고 합니다.
그래디언트를 계산하는 방법은 역전파 알고리즘으로 이루어지는데 역전파는 추후 기술합니다
그래디언트의 부호는 입력벡터의 값이 커져야할지 작아져야할지를 알려줍니다.
하지만 더 중요한 것은 이 값들의 상대적인 크기입니다.
어떤 값을 조정하는것이 다른 가중치를 조정하는 것보다 손실함수에 더 큰 영향을 미칠 수 있습니다.
딥러닝의 핵심은 손실함수를 최소화하는 골자기를 찾아가면서 그 방향과 정도를 미분으로 파악하는것
딥러닝의 놀라운점은 어떤 패턴을 찾아야하는지 알려주지도 않았는데 찾는다는것
5를 판단은 가능하지만 5를 그릴줄은 모른다는 점입니다.
'ML' 카테고리의 다른 글
[ML] 파라미터 튜닝 optuna - lgbm (0) | 2022.04.12 |
---|---|
[ML] 교차검증, cross-validation (0) | 2022.04.11 |
[ ML ] 인공신경망 기본 (0) | 2022.02.16 |
[ML] cycling encoding (0) | 2022.02.15 |
[ML] XGBoost - Classification (0) | 2022.01.18 |