본문 바로가기

딥러닝9

[딥러닝 기초] 총 정리 : 신경망, 경사하강법, 오차역전법 (수정 중) 안녕하세요 :) 이번 게시물에서는 여태까지 배운 내용들을 총 정리해보겠습니다. 아직 이전 게시물을 다 읽어보지 못하신 분들을 한번 쭉~ 읽어보시는걸 추천드립니다! 이번 게시물에서는 신경망의 구조 경사하강법(gradient descent) 오차역전법(back propagation) 합성곱 신경망(convolution neural network) 에 대해서 다뤄보겠습니다. 1. 신경망(neural network) 뉴런 (neuron) 딥러닝 신경망은 우리 몸에 있는 뉴런을 기반으로 만들어졌습니다. 그렇기에 뉴런의 동작 방식을 먼저 알아보겠습니다. 뉴런의 가장 큰 특징은 입력값의 크기가 임계값보다 크거나 같아아지 반응을 한다는 것입니다. 입력값 ≥ 임계값 : 뉴런이 반응함 입력값 < 임계값 : 뉴런이 반응하지.. 2020. 7. 15.
[딥러닝 기초] 합성곱 신경망(CNN) - 2 안녕하세요 :) 오늘은 저번 게시물에서 마저 다루지 못한 합성곱 신경망에 대해서 더 다뤄보겠습니다. 이전 게시물을 아직 보지 못하셨으면 여기를 클릭해주세요! 이번 게시물에서는 이전에 다룬 유닛의 오차를 합성곱 신경망에서 어떻게 사용할 것인지에 대해서 알아보겠습니다. 합성곱 신경망 합성곱 신경망에서 유닛의 오차(δ) 합성곱 신경망에서는 두 가지 종류의 유닛의 오차가 존재합니다. 합성곱층의 유닛의 오차 출력층의 유닛의 오차 합성곱층과 출력층에 대해서 서로 다른 방법으로 유닛의 오차를 사용하게 됩니다. 1. 출력층 유닛 출력층 유닛의 기울기 성분 유닛의 오차를 이용해서 출력층 유닛의 기울기 성분을 표현해보겠습니다. 출력층을 간략하게 그려보면 다음과 같습니다. 유닛의 오차(δ)를 이용해서 출력층 유닛의 기울기 .. 2020. 7. 13.
[딥러닝 기초] 합성곱 신경망(CNN) - 1 안녕하세요 :) 오늘은 신경망의 여러가지 종류 중 합성곱 신경망(Convolutional Neural Network, CNN)에 대해서 이야기해보겠습니다. 합성곱 신경망(CNN) 합성곱 신경망은 기존에 배운 신경망과는 다르게 은닉층이 여러개의 합성곱(convolution)층과 풀링(pooling)층으로 이루어져 있습니다. 합성곱층에서는 이미지 데이터에 비교하는 패턴과 일치하는 부분이 얼마나 포함되어 있는지 확인합니다. 원하는 패턴이 많이 포함되어 있으면 정보를 적극적으로 다음 층으로 전달합니다. 전달하는 정보는 합성곱층의 유닛에 기록합니다. 풀링층에서는 합성곱층의 활동 정보를 묶어서 정리합니다. 기존의 신경망과 다른 합성곱 신경망의 장점은 다음과 같습니다. 복잡한 패턴인식 문제도 간결한 신경망으로 해결할.. 2020. 7. 11.
[딥러닝 기초] 오차역전법 (back-propagation) 안녕하세요 :) 오늘은 경사하강법의 문제를 해결하기 위한 오차역전법 (back-propagation)에 대해서 다뤄보겠습니다. 오차역전법 (back-propagation) 경사하강법 오차역전법에 대해 이야기해보기 전에 경사하강법을 복습해보겠습니다. 경사하강법을 오차함수에 적용시켜보겠습니다. 간단한 다변수 함수의 최소값을 찾는 경우, 경사하강법은 효율적으로 사용될 수 있습니다. 하지만, 많은 파라미터가 포함되는 경우, 경사하강법으로 최소값을 계산하기 어려워집니다. 경사하강법을 위와 같이 적용하는 경우, 다수의 기울기 성분을 계산하는 비용이 커지게 됩니다. 여러 항을 한꺼번에 미분해서 계산하려면 너무 많은 비용이 들기 때문에 효율적이지 못합니다. 이러한 문제를 해경하기 위해서 오차역번법(back-propag.. 2020. 7. 10.
[딥러닝 기초] 신경망과 학습 안녕하세요 :) 오늘은 여태까지 배운 지식들을 기반으로 신경망과 신경망 학습에 대한 이야기를 해볼까 합니다! 1. 신경망 신경망의 파라미터와 변수 파라미터(parameter)는 신경망의 수학적 모델을 정하는데 필요한 상수입니다. 이전에 대분 가중치(weight)와 편향(bias)을 파라미터라고 부릅니다. 파라미터를 제외하고, 신경망의 입력으로 주어지는 데이터 값에 따라서 변하는 변수가 필요합니다. 그러므로, 신경망에서는 데이터를 저장하는 변수 모델을 결정하는 파라미터 로 구성됩니다. 이해하기 쉽게 단순회귀분석을 예시로 들어보겠습니다. y = px + q 라는 회귀방정식을 살펴보면, 절편(q)과 회귀계수(p)는 파라미터에 해당하고, 독립변수(x), 종속변수(y)는 변수에 해당합니다. 파라미터와 변수의 이름.. 2020. 7. 9.
[딥러닝 기초] 경사하강법과 회귀분석 안녕하세요 :) 오늘은 딥러닝의 기초 개념 중 하나인 경사하강법과 회귀분석에 대해서 간단하게 다뤄보겠습니다. 1. 경사하강법 (Gradient descent) 신경망에서는 z = f(x, y)를 최소화하는 x, y 값을 구하는 것이 목표입니다. 이러한 목표를 달성하기 위한 방법 중 하나가 바로 경사하강법(Gradient descent)입니다. 경사하강법은 그래프 상의 점을 조금씩 움직여서 함수의 최소 값을 구하는 방식입니다. 점을 조금씩 움직일 때, 가장 가파른 방향으로 이동하게 됩니다. 이러한 방법을 수치해석에서는 최급하강법(method of steepest descent)라고 합니다. 앞서 배운 내적을 이용한 근사식 표현으로 돌아가 보겠습니다. z = f(x, y)에서 x, y를 △x, △y 만큼 변.. 2020. 7. 9.
[딥러닝 기초] 딥러닝 수학 - 2 : 행렬, 미분 안녕하세요 :) 오늘은 저번 게시물(딥러닝 수학-1)에 이어서 조금 더 구체적인 수학적인 내용을 다뤄보겠습니다. 크게 형렬, 미분에 대해서 배워보겠습니다. 1. 행렬 (matrix) 행렬은 수와 식을 사각 형태의 배열로 나열한 것을 의미합니다. 거로 줄을 행, 세로 줄을 열이라고 부릅니다. 이때, 행의 수와 열의 수가 같은 경우 정사각 행렬(square matrix)라고 부릅니다. 또한, 행렬 중, 하나의 열로 구성된 행렬을 열 벡터, 하나의 행으로 구성된 행렬을 행 벡터라고 부릅니다. 행렬의 원소 중, i행 j열에 위치한 성분은 aij로 표시합니다. 그중, i = j 인 경우 aij 가 1이고, 나머지의 경우 모두 0인 경우를 단위행렬(E)라고 합니다. 행렬의 연산 행렬의 상등 두 행렬에서 대응하는 각.. 2020. 7. 6.
[딥러닝 기초] 딥러닝 수학 - 1 : 함수, 수열, 벡터 안녕하세요 :) 오늘은 구체적인 딥러닝 이야기를 하기에 앞서, 딥러닝을 이해하는데 필요한 수학적인 내용을 다뤄볼까 합니다. 크게 함수, 수열, 벡터에 대한 내용을 다뤄보겠습니다. 1. 함수 1차 함수 가장 기본적인 1차 함수에 대해서 알아보겠습니다. 일차 함수는 기본적으로 다음과 같은 형식으로 구성될 수 있습니다. 위 식은 독립 변수가 1개인 가장 단순한 형태의 1차 함수입니다. 다음과 같이 2개의 독립 변수로 구성된 1차 함수를 생성할 수도 있습니다. 이 때, y는 x1, x2와 "1차 함수 관계"라고 표현합니다. ※ 독립 변수와 종속 변수 x가 주어졌을 때, y의 값이 정해진다면, x는 독립변수, y는 종속 변수라고 할 수 있습니다. 앞서 배운 신경망의 가중입력은 1차 함수 관계로 표현할 수 있습니다.. 2020. 7. 1.
[딥러닝 기초] 신경망과 딥러닝 개요 안녕하세요 :) 오늘은 신경망 기반의 딥러닝에 대한 기본적인 이야기를 해보려고 합니다. 주어진 데이터를 스스로 학습이 가능하다는 점이 신경망 기반의 딥러닝의 장점이라고 할 수 있는데요. 신경망을 설명하려면 뉴런에 대해서 먼저 간단하게 이해해야 합니다. 뉴런 (neuron) 뉴런의 기본적인 특징을 먼저 살펴보겠습니다. 다수의 뉴런들로 네트워크를 구성합니다. 입력된 값의 합이 임계값을 넘지 않으면 해당 뉴런은 반응하지 않습니다. 입력된 값의 합이 임계값을 넘으면, 다른 뉴런에 일정 강도의 신호를 전달합니다. 여러 뉴런에서 전달되는 신호의 합은 가중치가 각각 다릅니다. 쉽게 말하면, 서로 다른 뉴런으로부터 신호를 받아 가중치에 따라 입력된 값이 임계값을 넘는 경우 연결된 또 다른 뉴런들에게 전달되는 구조입니다.. 2020. 6. 29.