본문 바로가기

Machine Learning47

DL #9 : Recurrent Neural Network (RNN) 구조 및 장단점 Recurrent Neural Network (RNN) RNN은 순환 신경망이라고 불리며, 과거의 데이터도 학습에 활용하는 딥러닝 알고리즘 입니다. RNN은 몇 단계 전으로 거슬러 올라가 데이터를 반영하는 신경망 알고리즘 입니다. 간단히 설명하자면, 1회의 데이터가 아니라 과거의 데이터도 학습에 활용하는 알고리즘입니다. RNN의 특징은 아래와 같습니다. RNN 사용 예시1. 시계열 데이터 학습 가능2. 음성 파형, 자연어 학습 가능3. 자연어 처리, 음성 인식과 같은 순서가 있는 데이터 처리 RNN 구조 RNN의 학습은 확률적 경사 하강법을 이용해서 실시간 순환학습 (Real-Time Recurrent Learning : RTRL)이나 시간 기반 오차역전파 (Back Propagation Through .. 2020. 5. 25.
DL #8 : Convolutional Neural Network (CNN) 구조 및 동작 방식 Convolutional Neural Network (CNN) CNN은 신경망에 전처리를 추가한 다층 퍼셉트론의 한 종류입니다. 2차원 데이터의 입력과 훈련이 용이하며 적은 매개변수라는 장점으로 이미지, 동영상, 음성 학습에 많이 사용되는 알고리즘입니다. 간단하게 설명하자면, CNN은 합성곱 신경망이라고 할 수 있습니다. CNN 적용 예시 : 이미지, 동영상, 음성 학습 CNN 알고리즘 구조 CNN은 Convolution Layer, Pooling Layer, Fully-connected Layer 단계로 이루어진 구조입니다. Convolution Layer, Pooling Layer에서 특징맵이 만들어지는데, 두 Layer 사이에 정규화 계층을 포함하기도 합니다. CNN 알고리즘 동작 방식CNN은 Co.. 2020. 5. 25.
DL #7 : 딥러닝 기울기소실 문제 해결 방법 (Vanishing Gradient) Vanishing Gradient Problem 깊고 넓은 딥러닝 모델을 학습시키기는 과정에서 출력값과 멀어질수록 학습이 되지 않는 현상을 기울기소실이라고 합니다. 이러한 심층신경망에서 가중치를 Back Propagation으로 학습시키는 과정에서 가중치가 발산하거나 곡선의 기울기가 0이되는 기울기 소실(Vanishing Gradient Problem) 문제가 발생합니다. 해당 문제는 20년 동안 해결되지 못했는데 원인은 시그모이드 합수 입니다. 시그모이드 함수는 0~1을 표현합니다. 하지만 시그모이드의 미분 값은 0~0.25 사이의 값만 표현가능합니다. 역전파로 결과값에 대한 가중치 계산 시 전갈되는 값이 1/4 감소되는 현상이 발생합니다. 세번 이상 미분계산 반복 시 0에 가까운 값이 되어 학습되지 .. 2020. 5. 24.
DL #6 : 다층 퍼셉트론 학습 및 한계 (Multi Layer Perceptron) Multi Layer Perceptron 개요 다층 퍼셉트론은 1개 이상의 Hidden Layer를 가지는 퍼셉트론 입니다. Multi Layer Perceptron은 다수의 입력값과 각 입력값에 대한 가중치 곱을 한 결과들이 합쳐지고, 그 합쳐진 결과값이 활성화 함수의 입력값이 됩니다. 이후에 활성화 함수의 결과값은 다음 노드의 입력값이 됩니다. 이런 방식으로 여러 은닉층을 거친 결과는 최종 출력 값이 됩니다. 가중치는 각 노드의 연결강도를 말하는 것이며, 학습에 의해 변경됩니다.뉴런은 입력 신호를 처리하여 출력 신호를 내보내는 처리 역할을 합니다. 따라서, Processing Element 또는 Threshold Unit 라고도 합니다.활성화 함수는 가중치 곱에 의해 생성된 값을 결정 짓는 결정함수 .. 2020. 5. 23.
DL #5 : 딥러닝 Overfitting 방지 방법 (오버피팅, 과적합) Overfitting (과적합) Overfitting은 학습데이터에 지나치게 맞는 모델을 학습함으로써 일반화 성능이 떨어지는 현상입니다. 학습이 계속 진행됨에 따라 학습데이터인 Training Dataset의 오차는 줄어들지만, 검증데이터인 Validation Dataset의 오차는 감소하다가 일정 시점이 지나면 증가하게 됩니다. 보통 이 시점에서 학습을 멈추어 일반화된 딥러닝 모델을 생성합니다. Overfitting 정의 및 학습 종료 시점Overfitting : 학습데이터에만 지나치게 Fitting학습종료시점 : Validation Data 오차 증가 시점 Overfitting 방지 방법 Overfitting을 방지하는 방법은 위에서 설명한 바와 같이 기본적으로 Validation Dataset 오차.. 2020. 5. 21.
DL #4 : 딥러닝 학습 Gradient Descent, Back Propagation (경사하강법, 오차역전파) 경사하강법 (Gradient Descent) 경사하강법은 오차가 작아지도록 최적화 하는 방법입니다. 오차가 낮아지는 방향으로 이동할 목적으로 현재 위치를 미분하는데, 미분을 통해서 기울기가 큰 방향을 찾아 탐색합니다. 이로써, 주어진 기준을 가장 잘 만족하는 것을 선택합니다. 경사하강법의 원리는 함수를 최소화하는 x, y 지점의 경사(기울기)가 0이 되도록 만드는 방법입니다. 우리가 고등학교 때 배운 바와 같이 Local minima 이던지 Global minimum 이던지 최소화 지점의 기울기는 0 입니다. 경사하강법 원리∂(x, y)/∂x = 0 , ∂(x, y)/∂y = 0 가중치 업데이트w+ = w - LearningRate * ∂e/∂we : errorw : weight 신경망 학습방법Stoch.. 2020. 5. 21.
DL #3 : 딥러닝 활성화 함수 종류 및 특징 (Activation Function) 활성화 함수는 Transfer Function 으로부터 전달 받은 값을 출력할 때 일정 기준에 따라 출력값을 변화시키는 비선형 함수입니다. 활성화 함수를 통해 출력 값을 0~1 사이의 실수 값으로 정규화해 확률적 개념으로 사용 가능합니다. 비선형함수는 직선으로 표현할 수 없는 데이터 사이의 관계도 표현할 수 있습니다. 대표적인 활성화 함수는 Sigmoid, tanh, ReLU 입니다. 계단 함수 (Step Function) 계단 함수는 선형 함수의 결과를 이진 분류로 나타내기 위한 함수로, 임계치 이상에서 1, 아니면 0을 출력합니다. 시그모이드 (Sigmoid) 시그모이드는 선형함수의 결과를 0~1 까지의 비선형 형태로 변형하기 위한 함수입니다. 해당 함수는 로지스틱 회귀와 같은 분류 문제의 확률 표현.. 2020. 5. 4.
DL #2 : 딥러닝의 기본, 퍼셉트론 구조 및 활성화함수 (Perceptron, Activation Function) 인공지능 알고리즘 변화기존 입력 데이터와 알고리즘을 통해 출력데이터를 구하는 인공지능 알고리즘 구현 방식에서 입력 데이터와 출력 데이터를 통해 알고리즘을 구하는 방식으로 변화했습니다. 이러한 방식이 최근 의미있는 결과를 보이며, 많은 곳에서 활용되는 딥러닝 알고리즘의 접근 방식이 되겠습니다. 기존 : 입력 데이터 + 알고리즘 → 출력 데이터변화 : 입력 데티어 + 출력데이터 → 알고리즘 퍼셉트론 (Perceptron) 퍼셉트론은 신경망 초기 연구 과정에서 제안된 방식으로, 맥컬록-피츠 모델을 기반으로 한 기계학습 방법입니다. 퍼셉트론은 가장 간단한 구성의 신경망 구조이며, 입력되는 각 값에 가중치를 곱해 출력을 확인하는 알고리즘 입니다. 위 그림에서 x1, x2, x3는 입력 값, w1, w2, w3는 .. 2020. 5. 4.
DL #1 : 인공지능 발전사와 주요 이슈 (AI : Artificial Intelligence) 최근 딥러닝에 대해 공부를 하고 있으며, 이를 기록하기 위해서 정기적인 포스팅을 할 계획입니다. 그 첫번째로 인공지능의 발전사와 주요 이슈에 대해서 정리하면서 여러분과 공유하고자 합니다. 시대 별 인공지능 붐인공지능 붐은 3차에 거쳐 나눌 수 있습니다. 초창기 인공지능은 단순 퍼셉트론을 이용해서 패턴인식을 할 수 있는 수준이었으나 Back Propagation, 초기화 기법, 활성화 함수 들을 개선하면서 잘 알려져 있는 지금의 알파고 까지 이르렀습니다. # 1960~1980년 : 1차 인공지능 붐전문가 시스템이 주요 관심 대상으로, 전문가 시스템은전문가가 수행하는 조건 판단을 프로그램화해서 문제를 처리하는 방법입니다. # 1980~2000년 : 2차 인공지능 붐초기 신경망의 한계를 확인한 시기로, 이 시.. 2020. 5. 2.
ML #17 : 머신러닝 인공신경망(Neural Network) 개념 및 학습 절차 신경망과 인공신경망인공신경망이란, 인간의 뇌를 부분적으로 흉내낸 것으로 여러 개의 뉴런을 병렬처리한 모델을 말합니다. 따라서, 인공신경망은 복잡하고, 비선형적이고, 병렬적인 처리가 가능합니다. 신경망과 인공신경망을 비교한 명칭은 아래와 같습니다. 세포체(뉴런) - Node수상돌기 - 입력(Input)축삭돌기 - 출력(Output)시냅스 - 가중치(Weight) 인공신경망을 학습시킬 때, 각 신호값을 가중치와 곱한 값들의 합을 뉴런이 가지는 한계와 비교함으로써, 한계치를 넘어서면 0, 넘어서지 않으며 -1을 다음 노드로 전달합니다. 이를 반복적인 조정을 통해 학습해서 인공신경망 모델을 생성합니다. 활성화 함수 개념인공신경망에서 결과값을 내보낼 때, 사용하는 함수가 활성화 함수입니다. 이는 전이함수라고도 부.. 2020. 4. 26.