인공지능(32)
-
[밑바닥딥러닝] 14. 과대적합(Overfitting) 대응 - 규제, 드롭아웃
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. 과대적합(Overfitting)은 모델의 표현력이 복잡해지거나, 훈련 데이터 수가 적을 때 주로 발생한다. 모델이 과대적합되면 훈련 데이터에 대해서만 정확해지기 때문에 범용적인 모델을 만들 수 없어진다. 이번 장에서는 과대적합을 막기 위한 L1, L2 규제와 드롭아웃(dropout)이라는 방법에 대해서 알아보도록 하자. l1, l2 규제 출처 : https://medium.com/analytics-vidhya/l1-vs-l2-regularization-which-is-better-d01068e6658c L1 규제는 기존 손실값에 (람다(λ)값이 곱해진) 가중치의 절대값을 더한다. 가중치 중에 큰..
2021.10.16 -
[밑바닥딥러닝] 12. 매개변수 갱신법
본 게시글은 한빛미디어 『밑바닥부터 시작하는 딥러닝, 사이토 고키, 2020』의 내용을 참조하였음을 밝힙니다. '좋은 가중치'를 찾기 위해서 우리는 손실 함수를 통해 각 가중치의 값을 지속적으로 갱신한다. 저번 장에서는 가중치의 값을 갱신하는 방법을 확률적 경사 하강법(SGD)를 통해 알아보았는데 SGD 이외에도 매개변수(가중치) 갱신에 다양한 방법을 응용할 수 있다. 다양한 매개변수 갱신법에 대해 알아보도록 하자. 확률적 경사 하강법(SGD) 출처 : https://www.geeksforgeeks.org/difference-between-batch-gradient-descent-and-stochastic-gradient-descent/ 확률적 경사 하강법(SGD)는 가장 기본적인 경사 하강법이라 할 수..
2021.10.16 -
[밑바닥딥러닝] 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