머신러닝
1. 머신러닝: 기계한테 학습시키는 모든 것
ex)스팸메일 몇만개를 검토해서 어떤 제목이 스팸인지 확인
2. 종류 : supervised learning/ unsupervised learning: 유사도로 분류(군집화)->영화추천, 옷추천의 알고리즘/ reinforce learning
3. 학습과정은 요로코롬==>가중치에 대한 변수를 찾게끔 시키는 것
w1,w2의 기준을 세우기 위해 데이터를 주면됨. 이때 오차값이 최소화되는 w값을 찾으면 됨
뇌를 본딴 뉴럴네트워크 (이러면 컴퓨터가 사람처럼 생각하겠찌?)
좀 더 정교한 예측을 위해 인간의 뇌 동작 방식을 따온게 뉴럴 네트워크.(뉴런이 연결된 형태마냥 중간에 사고과정을 더했다고 생각하면 편하다)
전통 머신러닝은 사람이 가이드를 제공했었음(뭐가 타이어고 문짝이고..등등) 근데 딥러닝은 컴퓨터가 알아서 분류해(다만 데이터가 쬐에끔 더 필요하겠지)
손실함수 (loss function) 로 컴퓨터에게 오차를 알려줘야함
오차를 최소화하는 방향으로 w값을 찾으라고 시키는 것이 머신러닝, 이때 컴퓨터한테 오차가 뭔지, 어떻게 계산해야하는지 입력해줘야해
=>loss function: 모델의 정확도를 평가하기 위해 오차를 구하는 수식
활성함수가 없으면 뉴럴네트워크가 아님 (Activation Function)
3강까지 어마어마한 결함이 있다고 한다. hidden layer가 있든 없든 결과가 똑같았다는 것
그걸 해결하기 위한 것이 활성함수
이를 통해 비선형적으로 복잡한것도 예측이 가능하다고 한다
앞부분 간단 정리
성적이 있으면 각각 연결된 노드들로 값을 내(그게 h1)->h1을 바로 쓰는게 아니라 활성함수같은 거에 넣어서 짜부 만들어-> 짜부 만든 값을 또 각 노드들로 계산해서 예측값을 내면 되는 거임. 그 예측감과 실제값의 오차를 최소화하는 w를 찾으면 정확한 모델이 나온다!!
그 오차를 최소화하는 w를 찾는 법이 바로 경사하강법
신나는(?) 경사하강법
w값을 일단 랜덤으로 하나 찍고 그래프 그려가면 판단 가능. but 우리가 하는 딥러닝은 그림도 못그림
그래서 나타난 경사하강법: w값 하나 찍고 그 값을 증가시킬지 감소시킬지 판단하는 기준. 경사를 타고 하강하면 됨
->현재 w1값에서의 접선의 기울기를 w1을 뺄 것(음.. 그 값에서 미분한 값을 빼도되나..?.....멍청...)
수식까지 정리하면 하기 싫어질 거 같아서.. 생략..^^..
대충 새로운 w1값을 찾고 싶으면 기존 w1값에서 w1이 최종 손실에 얼마나 큰 영향을 끼치는가를 빼주면 됨.
결국 머신에게 러닝을 시킨다
=손실을 최소화하는 w값을 찾게 시킴(이때 방법이 경사하강이라는 거임)
딥러닝 학습 과정 1. w값을 랜덤으로 찍고 2. w값을 바탕으로 총손실 E를 계산 3. 경사하강법을 통해 새로운 W값을 업데이트 시켜 |
BUT,, 밑의 그림처럼 기울기가0이어도 최저점이 아닌 경우도 있음
해결책 : local minima- 기울기만 빼지 말고 Learning rate*기울기를 뺄 것
-> 기울기를 팍팍 줄여서 가짜 최저점을 뛰어넘을 수 있음(이떄 learning rate는 trial&error를 통해 실험적으로 정해야해)
Learning rate optimizer- 고정값을 두면 학습이 느리거나 학습이 안일어나는 경우도 있음. 그래서 가변적으로 수정을 통해 최적화를 계속 해줘야함
음 사실 기울기라기보단 편미분,,이라고 한다..허허
'cs,코딩,알고리즘 > 생활코딩(머신러닝기초)' 카테고리의 다른 글
#2. Orange3 지도학습(2) (0) | 2021.08.23 |
---|---|
#1. Orange3 지도학습(1) (0) | 2021.08.23 |
#2. Orange3 3,4일차 - 통계와 시각화&머신러닝 (0) | 2021.08.03 |
#1. Orange3 1,2일차 - OT및 설치와 기본 사용법, 표 다루기 (0) | 2021.08.02 |
#5. 머신러닝 야학_5일차(비지도학습, 강화학습) (0) | 2021.07.24 |