딥러닝 썸네일형 리스트형 [Deep Learning] 신경망 기초6 : 활성화 함수 Activation Functions Activation Functions (활성화 함수) 활성화 함수는 수많은 특징(feature)들로 예측할 타겟을 정의하고 이 값들을 학습하고 분류하는 것을 만들기 위해 데이터를 연산하다 보면 이상치라 불리우는 튀는 데이터가 있을 수도 있고 특징들을 구분짓는 값들도 있으며 결과에 필요없는 데이터가 존재 하기도 한다. 이러한 데이터들을 연산 하기 위해서 전처리를 통해 미리 조절하기도 하지만 완벽히 처리 할 수 없기 때문에 활성화 함수를 통해서 데이터의 폭을 어느정도 정의하여 연산 값을 내보내기 위한 함수. Sigmoid Function 0~1사이의 값을 가지며, 0을 기준으로 양수를 가지면, 0.5보다 커지고 음수를 가지면 0.5보다 작아진다. threshold 0.5를 기준으로 binary classif.. 더보기 [Deep learning] 신경망 기초5; Regularization Strategies(학습규제전략) - 일반적방지(Early Stopping, Weight Decay, Dropout, Weight Constraint,) & Learning Rate 조절 방식 Neural Networks는 매개변수가 아주 많은 모델이어서 훈련 데이터에 쉽게 Overfitting문제 발생. 이 문제를 해결하는 가장 중요한 방법은 가중치 규제 전략이다. 일반적인 overfitting을 방지 방식 Early Stopping : 뇌절하지 않도록 적절한 선에서 epoch를 중지시켜 학습을 끊어주는것. Weight Decay (가중치 감소) : 손실함수에 가중치의 합을 더해주어서 가중치가 너무 크게 업데이트 되는 것을 방지한다. loss함수에 λ값을 곱한 가중치 합을 더해서 진행. L(θw)=12Σi(outputi−targeti)2+λ|θw| ( L1:절대값을 사용해서 ;0에수렴) L(θw)=12Σi(outputi−targeti)2+λ||θw||2 (L2:제곱값을 사용해서 ;0에가까이가.. 더보기 [Deep Learning] 신경망 기초 4; 확률적 경사하강법(SGD; Stochastic Gradient Descent) & Optimizer 무작위로 뽑은 하나의 관측값 마다 기울기를 계산하고 바로 가중치를 업데이트 한다. 기존에 사용한 경사하강법은 배치(batch)방법인데, 모든 관측치를 가지고 기울기를 다 계산한 다음에 가중치를 업데이트했었다. 그와 다르게 SGD는 관측치 마다 가중치를 업데이트 하기 때문에 학습이 빠르게 진행되는 장점이 있다. 데이터 샘플이 많아질 수록 SGD가 빠르게 학습이 된다. 단점: 학습 과정 중 손실함수 값이 변동이 심하다. 완화 하는 방법으로 배치방법과 SGD를 합친 Mini-batch 경사하강법을 사용할 수 있다. 경사하강법의 변형들 경사하강법 알고리즘들은 다음과 같습니다. 1) Stochastic Gradient Descent(SGD) 2) SGD의 변형된 알고리즘들(Momentum, RMSProp, Ada.. 더보기 [Deep Learning] 신경망 기초 3; Forward Propagation(순전파) & Back Propagation(역전파), 손실함(Losses) 신경망 학습 알고리즘 요약: 학습할 신경망 구조를 선택합니다. 입력층 유닛의 수 = 특징 수 출력층 유닛의 수 = 타겟 클래스 수 은닉층 수, 각 은닉층의 노드 수 가중치 랜덤 초기화 순방향 전파를 통해 출력층 y값 을 모든 입력 에 대해 계산합니다. 비용함수를 J(θ)를 계산합니다. 역방향 전파를 통해 편미분 값들을 계산합니다. 경사하강법 (or 다른 최적화 알고리즘)을 역전파와 함께 사용하여 비용함수인 J(θ)를 최소화 합니다. 어떤 중지 기준을 충족하거나 비용함수를 최소화 할 때까지 단계 2-5를 반복합니다. 2-5를 한 번 진행하는 것을 epoch 또는 iteration이라 말합니다. 비용(cost), 손실(loss), 에러(error) 함수 계산 손실함수 : 실제값 - 예측값, 실제값과 예측값 .. 더보기 [Deep Learning] ANN Foundation ; 신경망 기초 2 - Perceptron(퍼셉트론) 신경망의 가장 작은 단위, 신경망의 구성(Layers) 퍼셉트론(Perceptron) 단순히 하나의 노드(뉴런)으로 이루어진 신경망 ;하나의 뉴런이 하는 일은 들어온 입력값들을 단순히 가중치를 곱해 모두 더하는 연산(선형결합)을 하고 활성화함수(activation function)에 넣어 그 결과를 출력. 아래 그림에서 '원'으로 표현된 것을 뉴런 or 노드(node)라고 함. 입력신호(x0, x1, ...)가 뉴런에 입력되면 각각 고유한 가중치(화살표=weights, w0, w1, ...)가 곱해지고 다음 노드에서는 입력된 모든 신호를 더해줌. 이는 시냅스(synapses)의 연결강도(시냅스의 두께, 개수)와 같은 역할을 함 각 뉴런에서의 연산값이 정해진 임계값(TLU; Threshold Logic Unit)을 넘을 경우에만 다음 노드들이 있는 층(laye.. 더보기 [Deep Learning] Artificial Neural Network (ANN) Foundation ; 신경망 기초 1 1950년대 고양이 신경세포의 실험을 통해 얻어진 신경망 아이디어 --> 다층신경망(MLP, multilayer perceptron)의 발전(매우 강력한 머신러닝 기술 중 한 가지) 머신러닝에서 독립 --> 딥러닝이라는 학문으로 발전 (컴퓨터가 단순 계산에서~~> 사물인식, 분할기술, 자연어 처리 등은 사람보다 뛰어난 성과를 보이며 발전) 딥러닝의 발전은 핵심 알고리즘의 발전 Framework의 발전(Tensorflow, PyTorch 등) CUDA (Gpu library, 속도증가) ImageNet과 같은 벤치마크 Dataset 등의 발전 Perceptron(퍼셉트론; 1957년 Rosenblatt이 고안 + 1943년경 뇌의 신경활동을 수학으로 표현한 아이디어) 알고리즘이 발전해 지금까지 이르게 되었.. 더보기 [Deep Learning] 딥러닝의 역사; 딥러닝이라고 쓰고 인공지능이라고 읽는다 패턴인식(Pattern Recognition) 신경망(Neural Networks) 머신러닝 딥러닝(신경망) .... 이미지인식(Image Recogition) 컴퓨터비전(Computer Vision) 딥러닝(신경망) .... 자연어처리(Natural Language Processing) 자연어인식 (Natural Language Understanding) → 딥러닝 기반의 자연어 인식 휴리스틱 프로그램 (Heuristic Programs) 게임 기술 (Game Playing) 강화학습(Reinforcement Learning) → 딥러닝 기반 강화학습 (Deep Reinforcement Learning) 로보틱스(Robotics) 이중 내 관심사는 패턴인식이므로, 이번 섹션 열공 해야한다. ref. h.. 더보기 이전 1 다음