LeNet-5 얀 르쿤은 1998년 우편물에 필기체로 쓰인 우편변호를 인식하는 최초의 컨벌루션 신경망인 `LeNet-5`를 선보였다. 모델 구조 LeNet-5는 컨벌루션 계층과 풀링 계층을 2번 반복한 뒤 완전 연결 3계층으로 연결되는 구조이다. 컨벌루션 계층과 풀링 계층은 생체 신경망의 시각 영역을, 완전 연결 계층은 연관 영역을 모델링했다. 입력 데이터는 (32 x 32 x 1) 이미지 컨벌루션 계층은 (5 x 5) 필터(stride=1) 활성 함수는 시그모이드 혹은 하이퍼볼릭 탄젠트 풀링 계층은 (2 x 2) 필터(stride=2)로 평균 풀링을 통해 액티베이션 맵의 크기를 절반으로 감소 완전 연결 계층은 액티베이션 맵과 같은 크기의 (5 x 5 x 16) 컨벌루션 필터 120개로 크기가 120인 ..
시각 패턴 인식을 위한 신경망 모델 순방향 신경망으로 MNIST 필기체 숫자를 인식하려면 28x28 이미지를 784 크기의 1차원 벡터로 변환해서 모델에 입력해야 한다. 2차원 이미지를 1차원으로 펼치면 어떤 숫자인지 인식하기 어렵다. 이는 공간 데이터를 1차원으로 변환하는 순간 형상 정보가 분산되기 때문에 정확한 패턴을 인식하기 어려운 것이다. 또한 이미지와 같은 고차원 데이터는 차원별로 크기가 조금씩만 커져도 전체 데이터 크기가 기하급수적으로 증가한다. 입력 데이터가 커질수록 더 많은 특징을 포함하기 때문에 그에 따라 모델의 파라미터 수가 급격히 증가한다. 따라서 순방향 신경망은 이미지 데이터를 처리하기에 효율적이지 않다. CNN의 구조 현대의 CNN도 최초의 CNN 모델인 `LeNet-5`와 같이 ..
가중치 초기화(Weight Initialization) 신경망을 학습할 때 손실 함수에서 출발 위치를 결정하는 방법이 모델 `초기화(initialization)`이다. 특히 가중치는 모델의 파라미터에서 가장 큰 비중을 차지하기 때문에 가중치의 초기화 방법에 따라 학습 성능이 크게 달라질 수 있다. 상수 초기화 신경망의 가중치를 모두 0으로 초기화하여 뉴런의 가중치가 0이면 가중 합산 결과는 항상 0이 되고, 활성 함수는 가중 합산 결과인 0을 입력받아서 늘 같은 값을 출력한다. 예를 들어 활성 함수가 ReLU나 하이퍼볼릭 탄젠트면 출력은 0이 되고 시그모이드면 출력은 항상 0.5가 된다. 0이 아닌 다른 값의 경우에도 만약 가중치를 모두 같은 상수로 초기화하면 신경망에 `대칭성(symmetry)`이 생겨..
확률적 경사 하강법 확률적 경사 하강법은 손실 함수의 곡면에서 경사가 가장 가파른 곳으로 내려가다 보면 언젠가 가장 낮은 지점에 도달한다는 가정으로 만들어졌다. 그러나 가정이 단순하기 때문에 다양한 상황에 잘 대처하지 못하고 학습 속도도 느리기 때문에 성능에 한계가 있다. 고정된 학습률 학습률이란 최적화할 때 한 걸음의 폭을 결정하는 스텝의 크기를 말하며 학습 속도를 결정한다. 확률적 경사 하강법은 지정된 학습률을 사용하는 알고리즘이기 때문에 경험적으로 학습률을 조정할 수밖에 없으며, 이는 효율적이지 않고 최적의 학습률을 정하기 어렵다. 또한 학습률이 고정되어 있기 때문에 최적화가 비효율적으로 진행된다. 학습률이 변화할 수 있다면 처음에는 큰 폭으로 이동하다가 최적해에 가까워질수록 이동 폭을 줄여서 안정..
신경망 학습의 의미 신경망에는 입력 데이터와 타깃 데이터가 제공될 뿐, 추론을 위한 규칙은 제공되지 않는다. 신경망을 `학습(learning)`한다는 것은 이 규칙을 학습 데이터를 이용해서 스스로 찾는 것이다. 이는 학습 데이터에 기대하는 정답이 들어있기 때문에 가능하다. 신경망에 입력 데이터가 들어왔을 때 어떤 출력 데이터를 만들어야 할지를 정하는 규칙은 함수적 매핑 관계로 표현된다. 가중 합산과 활성 함수가 연결되어 뉴런을 구성하고, 뉴런이 모여 계층을 구성하며, 계층이 쌓여서 신경망의 계층 구조가 정의된다. 이러한 복잡한 신경망의 계층 구조 자체가 신경망의 함수적 매핑 관계를 표현하는 것이다. 신경망의 학습 과정에서 함수적 매핑 관계를 표현하는 전체 계층 구조를 찾아야 하는 것은 아니다. 신경망의 ..
신경망 학습에서 가중치 매개변수에 대한 손실 함수의 기울기는 수치 미분을 사용해 계산했다. 수치 미분은 단순하고 구현하기도 쉽지만 계산 시간이 오래 걸린다는 단점이 있다. 이에 비해 `오차역전파법(backpropagation)`은 가중치 매개변수의 기울기를 효율적으로 계산한다. 계산 그래프 `계산 그래프(computational graph)`는 계산 과정을 그래프로 나타낸 것이다. 이는 복수의 `노드(node)`와 에지(edge)`로 표현되며, 노드 사이의 직선을 에지라고 한다. 계산 그래프의 문제풀이는 다음과 같은 흐름으로 진행된다. 계산 그래프를 구성한다. 그래프에서 계산을 왼쪽에서 오른쪽으로 진행한다. 여기서 2번째 단계인 그래프에서 계산을 왼쪽에서 오른쪽으로 진행하는 단계를 `순전파(forward..
로지스틱 회귀모델의 필요성 앞서 선형 회귀모델에서 본 것과 다르게 반응변수 Y가 범주형일 경우, 즉 이진변수 혹은 멀티변수 등이라면 최소제곱법을 통해 회귀 계수 값을 추정하기가 어렵다. 이는 선형 회귀모델에서의 가정(오차항의 가정 등)이 성립하지 않기 때문이다. 이러한 경우 `로지스틱 회귀모델(Logistic Regression Model)`을 사용한다. 로지스틱 회귀 모델은 새로운 관측치가 왔을 때 이를 기존 범주 중 하나로 예측하는 범주예측, 즉 `분류(classification)` 문제를 풀때 사용하는 모델이다. 로지스틱 회귀모델을 사용하는 예시는 다음과 같다. 제품이 불량인지 양품인지 분류 고객이 이탈고객인지 잔류고객인지 분류 이메일이 스팸인지 정상메일인지 로지스틱 회귀모델의 이론적 배경은 다음과..
순방향 신경망의 구조와 설계 항목 현대에 들어와서 다층 퍼셉트론은 `순방향 신경망`, 퍼셉트론은 `인공 뉴런(Artificial Neuron)`이라 불린다. 순방향 신경망의 데이터는 서로 독립되어 있다고 가정하며, 데이터가 한 방향으로 전달되는 `순뱡향(Feedforward)` 연결만을 갖는 구조로 되어 있으며, 퍼셉트론의 연산과 같은 기본 뉴런 연산으로 실행된다. 추가적으로, CNN은 공간 데이터를 가정하며, RNN은 순환 데이터를 가정한다. 순방향 신경망의 구조 순방향 신경망은 다음과 같이 뉴런들이 모여 `계층(Layer)`를 이루고 계층이 쌓여 전체 신경망을 이루는 구조로 되어 있다. 순방향 신경망의 계층 구조 순방향 신경망의 계층 구조는 입력 계층, 은닉 계층, 출력 계층으로 구분된다. 대부분의 ..
딥러닝이란? 인공지능, 머신러닝과 딥러닝 정의 `인공지능(Artificial Intelligence)` : 문제를 인식하고 해결하는 능력인 지능을 구현하는 기술 ` 머신러닝(Machine Learning)` : 기계 스스로 학습하여 지능을 습득하는 기술 학습 알고리즘을 통해 데이터에 숨겨진 정보와 규칙을 기계 스스로 습득하고 그 결과를 이용해서 새로운 것을 예측하고 추론하는 기술 `딥러닝(Deep Learning)` : 생체 신경망을 모방해서 만든 `인공 신경망(Artifical Neural Network, ANN)`을 이용하여 복잡한 데이터 관계를 찾아내는 머신러닝 기법 인공 신경망이 `깊은 신경망(Deep Neural Network)`으로 발전하여 딥러닝이라는 이름 명명 머신러닝과 딥러닝의 관계 전통..
변수 사이의 관계 X변수(원인)과 Y변수(결과) 사이의 관계는 두가지가 있으며, 머신러닝 및 데이터 마이닝에서는 확률적 관계를 다룬다. 확정적 관계 : X변수만으로 Y를 100% 표현(오차항 없음) ex> 힘 = f(질량, 가속도), 주행거리 = f(속도, 시간) 확률적 관계 : X변수와 오차항이 Y를 표현(오차항 있음) ex> 반도체 수율 = f(설비 파라미터들의 상태, 온도, 습도) + 오차항 선형 회귀 모델 `선형 회귀 모델`이란 출력변수 Y를 입력변수 X들의 선형 결합으로 표현한 모델을 말한다. 여기서 선형 결합은 변수들을 (상수배와) 더하기 빼기를 통해 결합한 것을 의미한다. 만약 X 변수 1개가 Y를 표현하는 경우는 다음과 같다. 선형 회귀 모델링의 목적은 두 가지가 있다. X 변수와 Y 변수..