본문 바로가기

인공지능 공부/비전 시스템 공부

(19)
chapter 3 합성곱 신경망 - 3절 합성곱 신경망의 기본 요소 1. 합성곱층 합성곱층은 커널이라고 불리는 합성곱 필터를 이용해 입력된 이미지를 새로운 이미지로 만들어 출력한다. 모든 커널(kernel)은 합성곱 행렬 형태로 가중치를 가지고 있다. 커널을 이미지 위로 이동시켜 필터가 위치한 부분의 값들을 합성곱 행렬을 이용해 처리한 뒤 새로운 이미지의 픽셀값으로 결정한다. 여기서 필터가 위치한 부분을 수용 영역(receptive field)라고 한다. 필터를 픽셀 단위로 움직이며 계산한 픽셀값들을 모아 하나의 새로운 이미지를 만들어낸다. 이러한 방식으로 만들어진 새로운 이미지를 특징 맵 또는 활성화 맵(activation map)이라고 한다. 특징 맵은 입력 이미지에서 불필요한 정보를 걸러내고, 원하는 정보를 강조한 형태로 만들어진다. 합성곱층은 필터 수, 커널의 크..
chapter 3 합성곱 신경망 - 2절 합성곱 신경망 구조 1. 전체 학습 과정 설계 이미지 분류 파이프라인은 데이터 입력, 전처리, 특징 추출, 분류로 구성된다. MLP가 문제를 일으키는 부분은 특징 추출이다. 따라서 특징 추출을 CNN으로 처리하면 된다. 2. 특징 추출 특징추출 단계는 큰 이미지를 여러 개의 작은 특징 맵으로 나눈 뒤 이를 쌓아 벡터로 만드는 과정이다. 이미지가 합성곱층을 차례대로 통과하면 이미지의 크기는 작아지고 특징의 가짓수는 늘어난다. 3. 분류 특징 추출이 끝난 뒤에는 출력 층에 MLP를 추가하여 특징 벡터를 입력한다. MLP는 이 특징 벡터를 이용해 이미지를 분류한다.
chapter 3 합성곱 신경망 - 1절 다층 퍼셉트론을 이용한 이미지 분류 1. 입력층 입력층의 노드 수는 픽셀의 수와 같다. 신경망으로 2차원 이미지를 다루기 위해서는 이미지를 신경망이 이해할 수 있는 형태로 변환해야 한다. 이미지는 이미지를 구성하는 각 픽셀들의 픽셀 값으로 이루어진 행렬로 나타낼 수 있다. 각각의 픽셀값은 0부터 225까지의 범위를 가진 값으로서 0은 검은색, 225는 흰색, 그 사이 값은 회색조를 나타낸다. MLP에는 1차원 벡터만 입력할 수 있으므로 이 2차원 행렬을 1차원 벡터로 변환해야 한다. 이를 이미지 벡터 변환(image flattening)이라고 한다. 이미지 벡터 변환을 하면 열을 순서대로 나열한 형태가 된다. 입력층의 노드 수는 픽셀의 수와 같다. 2. 은닉층 은닉층의 노드 수와 층 수는 원하는 만큼 설정 가능하다. 3. 출력층 출력층의 ..
chapter 2 딥러닝과 신경망 - 7절 역전파 알고리즘 역전파란 가중치에 대한 오차의 미분을 입력층까지 전달하는 것을 말한다. 역전파(backpropagation)은 역방향 계산(backward pass)라고도 불리며, 가중치 수정을 위해 가중치에 대한 오차의 미분을 출력층부터 첫 번째 층까지 전달하는 것을 말한다. 다층 퍼셉트론에서 오차함수와 바로 연결되지 않은 가중치들에 대한 오차의 변화를 계산하기 위해 연쇄 법칙(chain rule)을 이용한다.
chapter 2 딥러닝과 신경망 - 6절 최적화 알고리즘 1. 최적화의 개념 최적화(optimization)란 어떤 값을 최소화하거나 최대화하는 것으로 문제를 바라보는 관점이다. 머신러닝에서는 오차를 최소화 하는 것을 최적화라고 한다. 모든 가능한 값을 시도해 오차가 최소가 되는 지점을 찾는 것은 실질적으로 불가능하기 때문에 최적화 알고리즘이 필요하다. 2. 최적화 알고리즘의 종류 배치 경사 하강법 배치 경사 하강(batch gradient descent, BGD)은 오차 함수의 최저점에 도달할 떄까지 오차 함수의 언덕을 내려가는 방법이다. 경사 하강을 하기 위해서는 경사와 학습률을 결정해야 한다. 경사는 가장 가파른 경사를 선택해야 하고, 학습률은 너무 좁지도 않고 너무 넓지도 않게 적절히 결정해야 한다. 경사를 계산하기 위해 모든 훈련 데이터를 이용하기 때..
chapter 2 딥러닝과 신경망 - 5절 오차 함수 1. 오차 함수의 개념 오차 함수(error function)는 비용 함수(cost function) 또는 손실 함수(loss function)이라고도 불리며, 신경망의 예측 결과가 바람직한 출력과 비교해서 얼마나 동떨어졌는지 측정하는 수단이다. 손실값이 크면 모델의 정확도가 낮다는 것을 뜻하고, 손실값이 작으면 모델의 정확도가 높다는 것을 뜻한다. 출력값은 항상 양수이다. 2. 오차 함수의 종류 평균제곱오차 평균제곱오차(mean squared error, MSE)는 각 데이터 점의 오차를 제곱해서 평균을 구한다. 출력값이 실수인 회기 문제에서 주로 사용한다. 절대제곱오차 절대제곱오차(mean absolute error, MAE)는 각 데이터 점의 오차의 절대값의 평균이다. 평균제곱오차와 달리 모델의 대..
chapter 2 딥러닝과 신경망 - 4절 순방향 계산 1. 순방향 계산의 개념 특징의 선형 결합을 활성화 함수에 통과시키는 계산과정을 순방향 계산(feedforward process)이라고 한다. 2. 순방향 계산 과정 순방향 계산은 입력값들의 가중합을 구하고 활성화 함수를 적용하는 것을 층 수만큼 반복하는 방식으로 진행된다. 따라서 수많은 계산이 필요한데, 행렬을 이용하면 여러 개의 입력을 한번에 계산할 수 있다. 3. 특징 학습 은닉층의 각 노드는 각 층에서 학습된 새로운 특징이다. 따라서 여러 층으로 구성된 은닉층은 입력 값이 각 층을 지날 때마다 새로운 특징을 만든다.
chapter 2 딥러닝과 신경망 - 3절 활성화 함수 활성화 함수는 전이 함수(transfer function) 또는 비선형성(nonlinearity) 이라고도 불린다. 활성화 함수는 신경망에 비선형성을 도입하고 출력값을 제약하는 역할을 한다. 비선형성이 없다면 다층 퍼셉트론이 단일 퍼셉트론과 다를 바가 없다. 선형 전달 함수 선형 전달 함수(linear transfer function)는 항등 함수(identity function)이라고도 불리며 입력을 그대로 출력한다. 즉, 실질적으로 활성화 함수가 없는 효과를 낸다. 헤비사이드 스텝 함수 스텝 함수(step function)는 입력이 0보다 크면 1을 출력하고 0보다 작으면 0을 출력한다. 주로 이진 분류 문제에 사용된다. 시그모이드 함수 시그모이드 함수(sigmoid function)는 모든 입력을 ..