Deep Learning(17)
-
[밑바닥딥러닝] 11. 오차역전파법(backpropagation) 구현(2)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 8장에서 살펴보았던 2층 신경망 구현에서는 가중치에 대한 편미분을 수행해 이를 가중치 갱신에 반영하였다. https://humankind.tistory.com/57 [밑바닥딥러닝] 8. 2층 신경망 구현, 미니배치 학습 본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 지금까지 살펴본 신경망의 출력, 손실 함수, 그레디언트, 가중치 humankind.tistory.com 하지만 이는 시간 복잡도 측면에서 매우 비효율적인 방법이었고, 오차역전파법이 그 대안이 될 수 있다는 사실을 확인하도록 하자! 2층 신경망 구현 from..
2021.10.07 -
[밑바닥딥러닝] 10. 오차역전파법(backpropagation) 구현(1)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 지난 장에서는 덧셈 노드와 곱셈 노드에서의 순전파와 역전파 방법에 대해서 살펴보았다. 이번 장에서는 저 두 노드 이 외에도 다양한 계산 노드의 순전파/역전파 구현을 알아보도록 하자. 활성화 함수 구현 1. ReLU 계층 첫번째로 알아볼 활성화 함수는 ReLU 함수이다. 출처 : https://medium.com/@danqing/a-practical-guide-to-relu-b83ca804f1f7 ReLU 함수는 은닉층 노드에 적용되는 활성화 함수 중 하나로, 가중치 합(w1*x1 + w2*x2 + .... +b)이 0을 넘지 못한다면 해당 노드를 0으로 만들고, 0을 넘는다면 가중치 합 그대로를..
2021.10.07 -
[밑바닥딥러닝] 9. 오차역전파법(backpropagation) - 계산그래프
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 지난 장에서는 예측 모델에서 예측한 결과와 실제 값과의 차이를 통해 손실값을 계산하고 계산된 손실 값에서 가중치(및 편향)에 대해서 (가중치마다) 수치미분을 수행해 이를 가중치 갱신에 반영하여 학습시키는 방법에 대해서 알아보았다. 하지만 이는 시간 복잡도 측면에서 매우 비효율적인 방법이므로 이번 장에서 오차역전파법(Backpropagation)에 대해서 알아보도록 하겠다. 계산 그래프 오차역전파에 대해 알아보기 앞서서 계산 그래프가 무엇인지 살펴보고 계산 그래프를 사용했을 때의 이점에 대해서 알아보도록 하겠다. 개당 가격이 a원인 사과 n개를 주문하고 이에 대한 소비세가 t %라고 할 때 이를 ..
2021.10.03 -
[밑바닥딥러닝] 8. 2층 신경망 구현, 미니배치 학습
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 이번 장에서는 지금까지 살펴본 신경망의 출력, 손실 함수, 그레디언트, 가중치 업데이트, 미니 배치 학습을 모두 이용하여 2층 신경망을 구현하고, 실제로 신경망을 학습시켜보도록 하겠다. 2층 신경망 구현 class TwoLayerNet: def __init__(self, input_size, hidden_size, output_size, weight_init_std = 0.01): ### 가중치들을 초기화 def predict(self, x): ### 입력값 x와 가중치들을 바탕으로 출력값을 반환 def loss(self, x, t): ### 입력값 x를 통해 예측값을 계산하고 ### 타깃값 t..
2021.10.01 -
[밑바닥딥러닝] 7. 경사하강법(gradient descent)
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 지금까지 퍼셉트론의 개념을 통해 입력값(input)과 가중치(weigth) 그리고 편향(bias)를 통해 결과를 도출하고, 손실함수를 통해 예측값과 실제(타깃)값과의 괴리를 측청하여 이를 가중치 업데이트에 반영하는 방법을 알아보았다. 이번에는 경사 하강법이라는 개념을 통해 실제로 가중치를 업데이트하는 방법을 알아보도록 하자. 경사하강법(gradient descent) 산에 조난자가 있다고 가정하자. 이 조난자는 눈이 다치는 바람에 앞을 볼 수 없고, 다시 베이스 캠프로 돌아가기 위해 경사를 더듬에서 원래 출발점이 있던 곳으로 내리막길을 따라 내려가야한다. 내려가다보면 내리막을 멈추고 어느 순간 ..
2021.10.01 -
[밑바닥딥러닝] 6. 수치 미분, 편미분
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 기계학습에서 학습이 이루어지는 근간이자 수단이 바로 '미분'이다. 이 미분이란 무엇이고, 기계 학습에서 어떻게 이용될까? 수치 미분 / 편미분 In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value) 출처 : https://en.wikipedia.org/wiki/Derivative 위키디피아에 따르면 미분은 어떠한 ..
2021.10.01