02 전이 학습 코드 분석

glob.glob 은 정규식 처럼 생각하면됨 여기서target_path 를 보면
경로 + 찾고자 하는 형식 을 넣어서 그 형식에 해당하는 path 를 paht_list 에 넣은뒤 return 값을 내놓음

인덱스에 해당하는 파일경로를 뽑은뒤
파일 경로르르 image.open 에 넣으면 크기 사이즈 [높이] [너비] [색 ] 을 알수 있다.

이경로중 하나를 self.transform ()에 넣는데 이때 클래스를 실행하기때문에 /ImageTransform 의__call__ 함수가 실행되면서 이미지가 변경되는것을 볼수 있다.

여기서 __call__ 이 실행되면서 위의 __init__ 이실행되는것을 볼수 있다!
# 그림판으로 모델 연결시킨거 도식화하기

# named_parameters()

우리가 쓰는 모델은 이미 완성된 모델이기 때문에 . parameter 당 이름이 있다.
# 맨마지막에 넣었던 새로운 linear 안에 들어있는 bias 와 weight 를 확인하는 식


로딩바 같은 효과라고 생각하면 된다.
# torch.set_grad_enabled()

이건 하나의 공식이여서 그냥.. 외우면 되는거라고 생각하고넘어가도 될듯

#

# batch 와 loss 그리고 SGD 이란?
https://www.youtube.com/watch?v=vMh0zPT0tLI
# cross_entropy loss 를 구해보자

entropy 는불안정성이라고 생각하면되늗네
내가 예측한 값이 얼마나 불안정한지 그것을 값으로 나타낸 값이다.
위의 그림에서 첫번째 그래프 실제의 값이 1 인데 내가 예측한 값이 만약 0 에 가깝게 예측이 됬다면 당연히 불안정성 이 높아지기때문에 . 곱하면 값이 커지게 되는데

이렇게 엔트로피를 계산할수 있다,,,,,,
그러면 이것을 신경망에서 어떻게 사용하는지 설명하겠다.
cross entropy 는 softmax 함수에서 많이 사용된다.
이전의 이진 분류처럼 이거 아니면 저거 가 아닌 많은 후보들이 이 있고 그 후보들도 각각의 에측값들이 나올때
이중에서 가장높은 결과값을 보이는 것이 실제로는 맞는 답인가? 즉 맞게 설계된 알고리즘인가? 일때 이 cross entropy 를 사용하게 되는데

여기서 나머지 observed == label 들 값들은 0 으로 설정 되있기 때문에 ( 데이터 셋에서 ) 이 나머지들은 신경 안써도 된다.
그리고 -1 * log( predicted (setosa)) 의 식에서 -1 도 label 로 설정되 어 있는 값 == 예측값이다..
그럼이제 이 cross entropy 를 이용해서 backpropagation 을 해보ㅗ자
https://www.youtube.com/watch?v=xBEh66V9gZo&list=PLblh5JKOoLUIxGDQs4LFFD--41Vzf-ME1&index=13
# back propagation 을 뜯어보자
cross entropy 에 넣은 예측값은 softmax 에서 나온 값이고


우리는 b3 를 구하고 싶다. 왜냐면 알고리즘을 정확하게 만들고 싶으니까..그럼 b3를 어떻게 변하게 할까?

이렇게 연결되있으니까 chain rule 이라 하는거다.
이번에는 보라

이렇게 보면
virgininca 는 b3에 직접적인 영향을 끼치는것은 아니라는것을 알수 있다.


결국은

이렇게 결과가 쉽게 나오는것을 알수 있다.

이 sum 을 slop 에 넣고 learning rate ( 임의로 설정)
해서 step size 를 정했다.
# batch 와 미니 batch 와 에포크
배치 : 하나의 바구니라고 생각하면된다.

미니배치들은 배치로 잘려진 애들을 미니배치라고 생각하면된다.
https://www.youtube.com/watch?v=87Q2LIlMWoY
이 강의를 내가 정리함
여기서x와 y 가 헷갈릴수도 있는데
어쩌피 알고리즘의 마지막 다음이 y 이다.
# cnn 에서 backpropagation 이란?

여기서 ㅣoss 는 cross entropy loss 이다.



