퍼셉트론에서는 활성화함수로 계단 함수를 이용한다. 신경망의 활성화 함수는 출력계층의 값이 커지면 최종 출력이 1로 수렴하는 단위 계단함수와 로지스틱 함수를 사용 1. 시그모이드 함수 신경망에서 자주 이용하는 활성화 함수 신경망에서는 활성화 함수로 시그모이드 함수를 이용하여 신호를 변환하고, 그 변환된 신호를 다음 뉴런에 전달함. 2. 계단함수 3. ReLU 함수 최근에는 ReLU 함수 (렐루함수) 사용 (입력이 0을 넘으면 그 입력을 그대로 출력, 0 이하이면 0 출력) 시그모이드함수와 쌍곡 탄젠트 함수는 미분 계산을 기반으로 두는 함수이지만 ReLU는 0또는 입력값을 그대로 내보내기 때문에 계산이 편리하다 심층신경망(Deep Neural Network, DNN) -> 시그모이드 함수에 전파와 역잔파를 ..
1.conda 가상 환경 확인하기 conda env list 2. conda 가상환경 만들기 conda create -n [virtualEnv] python = 3.6 3. jupyter 추가 3.1 가상환경 활성화 source activate [virtualEnv] 3.2 가상환경에서 jupyter notebook 설치 pip install ipykernel 3.3 jupyter notebook에 가상환경 kernel 추가 python -m ipykernel install --user --name [virtualEnv] --display-name "[displayKenrelName]" ex) python -m ipykernel install --user --name py36 --display-name ..
0. 텍스트 유사도(Text Similarity) 텍스트가 얼마나 유사한지를 표현하는 방식 중 하나 딥러닝에서는? 단어, 형태소, 유사도의 종류에 상관없이 딥러닝을 기반으로 텍스트를 벡터화 한 후 벡터화된 각 문장간의 유사도 측정 1. 자카드 유사도(Jaccard Similarity) 두 문장을 각각 단어의 집합으로 만든 뒤 두 집합을 통해 유사도를 측정하는 방식 중 하나 유사도를 측정하는 방법은 두 집합의 교집합인 공통된 단어의 개수를 두집합의 합집합 2. 코사인 유사도 두개의 벡터 값에서 코사인 각도를 구하는 방법 코사인 유사도 값은 -1과 1 사이의 값을 가지고 1에 가까울수록 유사 다른 유사도 접근법에 비해 성능이 좋다. -> 두 벡터간의 각도를 구하는 것이기 때문에 방향성의 개념이 더해진다. 3..
0. 단어 임베딩(Word Embedding)이란? - 단어의 의미를 고려하여 좀 더 조밀한 차원에서 단어를 벡터로 표현하는 것 1. 단어 수준 임베딩 2. 문장 수준 임베딩 2.1 ELMO - ELMo(Embeddings from Language Model) - 미국 연구기관 앨런 에이아이와 미국 워싱턴 대학교 공동 연구팀이 발표한 문장 임베딩 기법 - 전이학습(Transfer learning)을 자연어 처리에 접목 (전이학습? 이미 학습된 모델을 다른 딥러닝 모델의 입력값 또는 부분으로 재사용하는 기법) * ELMo는 크게 3가지 요소로 구성되어 있다. 1. Convolutional Neural Network - 각 단어 내 문자들 사이의 의미적, 문법적 관계를 도출한다. 2. LSTM 레이어 - B..
0. 특징 추출 모듈 자연어 처리에서 특징 추출이란? 텍스트 데이터에서 단어나 문장들을 어떤 특징 값으로 바꿔주는 것을 의미 기존에 문자로 구성되어 있던 데이터를 모델에 적용할 수 있도록 특징을 뽑아 어떤값으로 바꿔서 수치화 CountVectorizer - 단순히 각 테스트에서 횟수를 기준으로 특징 추출 TfidVectorizer - TF-IDF라는 값을 사용해 텍스트에서 특징 추출 HashingVectorizer - CounterVectorizer와 동일하지만 해시 함수를 사용, 텍스트의 크기가 클수록 HashingVectorizer 사용하는게 효율적 1. CountVectorizer 텍스트 데이터에서 횟수를 기준으로 특징을 추출하는 방법 어떤 단위의 횟수를 선택하는지는 선택사항 횟수를 사용해서 벡터를..
0. 설명하기 전에 RNN, LSTM, GRU 지식정보 필요 [링크] 1. 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq) 번역기에서 대표적으로 사용하는 모델 LSTM, GRU 등 RNN을 길고 깊게 쌓아서 복잡하고 방대한 시퀀스 데이터 처리 seq2seq는 크게 두 개로 구성된 아키텍처로 구성 -> 인코더, 디코더 seq2seq에서 사용되는 모든 단어들은 워드 임베딩을 통해 임베딩 벡터로서 표현된 임베딩 벡터 (Sutskever, et al. 2014). 인코더(Encoder)란? 입력 문장의 모든 단어들을 순차적으로 입력받은 뒤에 마지막에 이 모든 단어 정보들을 압축해 하나의 벡터로 만듦 디코더(Decoder)란? 이 컨텍스트 벡터를 통해서 출력 시퀀스를 만들어냄 2. 어텐션..
1. 순환 신경망(Recurrent Neural Network, RNN) CNN? 컴퓨터 비전 문제에 주로 사용되는 인공신경망 구조 Try to find local features from a sequence RNN? 시계열 데이터 등의 맥락을 고려해 학습할 수 있으므로 음성 같은 파형 데이터나 자연어 등의 학습에 이용 순환신경망의 학습은 확률적 경사 하강법을 이용하여 실시간 순환 학습(Real-Time Recurrent Learning, RTRL)이나 시간 기반 오차 역전파(BackPropagation Through Time,BPIT)로 가중치를 업데이트 RNN은 시계열 데이터를 다루기에 최적화된 인공 신경망 시계열 데이터란 시간 축을 중심으로 현재 시간의 데이터가 앞, 뒤 시간의 데이터와 연관 관계를..
1. Generative adversarial network(GAN) 비지도학습 GAN은 원 데이터가 가지고 있는 확률 분포를 추정하도록 하고, 인공신경망이 그 분포를 만들어낼 수 있도록 한다는 점에서 단순한 군집화 기반의 비지도 학습과 차이가 있음 GAN에서 다루고자 하는 모든 데이터? 확률 분포를 가지고 있는 랜덤변수(Random Variable) GAN과 같이 비지도학습이 가능한 머신러닝 알고리즘으로 데이터에 대한 확률분포를 모델링할 수 있게 되면, 원 데이터와 확률분포를 정확히 공유하는 무한히 많은 새로운 데이터를 새로 생성할 수 있음 2. Generator(생성자)와 Discriminator(구분자) Generator(생성자) : Discriminator을 속이기 위한 이미지 생성 학습 Disc..
0. Generative model 중요한것 1. PixcelRNN/CNN 2. Variational Autoencoder 3. GAN Generative model? 주어진 트레이닝 데이터의 특징을 학습하여 트레이닝 데이터와 유사한 새로운 데이터를 생성하는데 목적이 있음 입력변수(latent variable) z로부터 결과물(image)를 만들어내는 모델 maximum likelihood(ML)를 바탕으로 학습을 하는 것 Maximum Likelihood method? 가장 큰 우도(likelihood)을 찾는 문제, 주어진 추정 계수로 관측값이 발생할 확률 Implicit density - model에 대해 틀을 명확히 정의하는 대신 확률 분포를 알기 위해 sample을 뽑는 방법 >>Markov C..
* 합성곱 계층(Convolutional Layer, Conv Layer) - MLNN(Multi-Layer Neural Network )의 문제를 해결하고자 만들어진 것이 합성곱 계층 - 필기체나 MNIST 데이터 같은 이미지 데이터는 일반적으로 채널, 세로, 가로 이렇게 3차원으로 구성된 데이터 - Affine 계층에서는 이 3차원 데이터를 1차원 데이터(784=28*28)로 바꿔 입력했지만 합성곱에서는 3차원 데이터(1, 28, 28)를 입력하고 3차원의 데이터로 출력하므로 형상을 유지 - CNN에서는 이러한 입출력 데이터를 특징맵(Feautre Map) (1) 합성곱 계층 – 연산 (2) 합성곱 계층 - 패딩(Padding) - 패딩(Padding)은 합성곱 연산을 수행하기 전, 입력데이터 주변을..