Juhans
article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 7
ML & DL/복습 2023. 1. 24. 15:59

합성곱 신경망 (CNN) 이번 장은 합성곱 신경망이 주제이다. 합성곱 신경망은 음성, 이미지 데이터 인식 등 다양한 분야에서 사용된다. 특히 이미지 인식 분야에서 CNN은 신경망의 기초 중의 기초로 반드시 알고 넘어가야 한다. CNN의 구조 CNN과 기존의 Affine 계층은 상당히 유사하다. 결국 이전 층의 결과값을 다음 층의 입력으로 넣으면서 해당 노드와 입력의 유사도를 측정하는 일인 것이다. 다만 Affine 계층에서는 위치적인 정보를 고려하지 않고 단순히 주어진 행렬을 내적을 통해 결과값을 도출했다. 하지만 CNN에서는 위치적인 정보를 고려하기 위해 필터라는 window 개념의 가중치를 사용하게 된다. CNN으로 이루어진 네트워크에서는 Affine 대신 Conv라는 합성곱 계층이 추가된다. 여기에..

article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 6
ML & DL/복습 2023. 1. 23. 16:56

학습 관련 기술 이번 chapter에서는 학습과 관련된 기술들인 최적화 방법, 가중치 매개변수 초기화, 하이퍼파라미터 설정 방법, 가중치 감쇠와 드롭아웃, 배치 정규화 등 여러 가지 딥러닝에 사용되는 기술들을 공부한다. 매개변수 갱신 신경망에서의 학습은 손실 함수의 결과가 가장 작아지는 가중치 매개변수를 찾는 것인데, 이는 가중치 매개변수를 최적화하는 일이라고도 한다. 매개변수의 공간은 신경망의 크기에 따라 다르겠지만 심층 신경망의 경우 매우 높은 차원의 공간을 가지기 때문에 최적 매개변수를 찾는 것이 매우 어려운 일이다. 우리는 이전 chapter까지 신경망을 최적화할 때 기울기만을 사용하는 SGD(Stochastic Gradient Descent, 확률적 경사하강법)를 사용했다. 이번에는 SGD보다 ..

article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 5
ML & DL/복습 2023. 1. 22. 19:02

오차역전파법 (Backpropogation) chapter 4에서 배웠던 수치 미분으로 기울기를 구하는 방법은 빠르게 역전파의 기울기들을 계산하기 어렵다는 문제가 있다. 그 대신 chapter 5의 오차역전파법에서는 계산 그래프를 그려 빠르게 기울기(gradient)들을 구할 수 있다. 계산그래프 계산그래프는 위 그림과 같이 계산이 필요한 문제들을 노드와 엣지로 그린 것이다. 노드에는 연산자가 엣지에는 연산에 사용되는 수가 표시된다. 위 계산 그래프는 순전파이다. 국소적 계산 국소적 계산은 계산 그래프의 특징이다. 말 그대로 자신과 관계된 작은 범위의 계산만을 진행하는 것이 국소적 계산이다. 국소적 계산은 이후 연쇄 법칙(chain rule)에서 진가를 발휘한다. 해당 노드와 관련된 계산에만 집중해서 연..

article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 4
ML & DL/복습 2023. 1. 22. 15:03

신경망 학습 신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. 여기서 학습은 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 찾고 갱신하는 과정을 말한다. 그럼 이 학습에 대해서 좀 더 알아보자. 데이터 주도 학습 SVM, KNN과 같은 기계학습은 이미지에 포함된 중요한 특징을 사람이 직접 찾아내어 모델에 넣어줘야 하는 특징이 있다. 하지만 신경망은 입력 데이터만 정해주면 기계 자동으로 그 특징을 찾아낸다. 이런 신경망의 특성 때문에 딥러닝은 End-to-End Machine Learning(종단간 기계학습)이라고도 불린다. 훈련 데이터와 시험 데이터 신경망에 적용되는 데이터는 훈련 데이터, 시험 데이터로 나뉘게 된다. 훈련 데이터는 말 그대로 모델의 학습을 위해 사용되는 데이터로 모델 안의..

article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 3
ML & DL/복습 2023. 1. 21. 18:37

Repeat is the best medicine for memory. 신경망 신경망은 전 챕터에서 배웠던 퍼셉트론의 구조와 동일하다. 퍼셉트론과 신경망의 차이는 활성화함수인데 이는 뒤에서 더 설명하겠다. 신경망의 구조는 위 그림과 같이 입력층, 은닉층, 출력층이 차례대로 나열된 구조이다. 입력층은 입력되는 Feature의 개수만큼의 노드가, 은닉층과 출력층에서는 재표현되는 Feature의 개수만큼의 노드가 존재한다. 퍼셉트론과의 차이점 퍼셉트론과 신경망의 차이점은 활성화함수다. 다층퍼셉트론에서 이전층의 출력을 다음층의 입력으로 보낼 때 활성화함수는 계단함수(Step Function)가 사용된다. 하지만 신경망에서는 Step Function이 아닌 sigmoid, softmax같은 연속적인 함수가 활성화..

article thumbnail
밑바닥부터 시작하는 딥러닝 Chapter 2
ML & DL/복습 2023. 1. 21. 12:47

Repeat is the best medicine for memory. 퍼셉트론 (Perceptron) 퍼셉트론은 깊은 신경망, 즉, 딥러닝의 기원이 되는 알고리즘이다. 퍼셉트론의 구조와 흐름을 통해 깊은 신경망(딥러닝)의 Flow를 이해할 수 있고 다양한 variation도 이해할 수 있다. 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 노드(뉴런)를 말한다. 퍼셉트론을 떠올리면 우리 뇌의 가장 작은 전달 구조인 뉴런 또는 전기전자학에서의 노드가 생각이 난다. 이런 예처럼 퍼셉트론은 어떤 값을 받아 그 값들의 합과 곱이 일정 임계값을 넘는다면 +(positive) 신호를, 그렇지 않다면 -(negative) 신호를 내보낼 것이다. 또는 뉴런의 관점에서는 임계값이 넘을 때만 신호를 보내고..