1. 파이토치 모델 구현 하는 법 지금까지 텐서플로우, 케라스만 사용하다가 이미지 디텍션을 사용하면서 파이토치를 사용할 기회가 생겼다. 하지만 이게.. 굉장히 쉬운일이 아니었다. 파이토치의 대부분의 구현체는 대부분 모델을 생성할 때 클래스를 사용하고 있기 때문에 텐서플로우와 다르다. 너무 정형화 되어 있어서.. 끼워맞추기이긴 하지만 익숙해지면 쉬워지지 않을까라는 생각에 계속 하고 있다. pytorch에서는 데이터셋을 더 쉽게 다룰 수 있도록 다음과 같은 도구를 제공한다. torch.utils.data.Dataset torch.utils.data.DataLoader 2. 기본적인 구조 2.1 Dataset 1 2 3 4 5 6 class datasetName(torch.utils.data.Dataset):..
1. Stochastic Gradient Descent 1.1 Batch Gradient Descent 1.2 Stochastic Gradient Descent 1.3 Mini-batch Gradient Descent 2. Better Gradient Descent Methods 2.1 Momentum 모멘텀 최적화는 이전 그래디언트가 얼마였는지를 상당히 중요하게 생각함. 매 반복에서 현재 그래디언트를 (학습률 η 를 곱한 후 ) 모멘텀벡터 m (momentum vector)에 더하고 이 값을 빼는 방식으로 가중치를 갱신한다. 그래디언트를 속도가 아니라 가속도로 사용한다. 일종의 마찰 저항을 표현하고 모멘텀이 너무 커지는 것을 막기 위해 알고리즘에 모멘텀(momentum)이라는 새로운 하이퍼 파라미터 β..
* 오버피팅과 언더피팅이란? * 오버피팅을 방지하기 위해서는? (1) Weight Sharing (2) 가중치 감소 (3) 조기종료 (4) Dropout (5) Batch Normalization 0. Regularization(일반화 기법) 모델의 복잡도를 낮춰서 Test 데이터에 대한 정확도를 높인다. Overfitting을 방지하기 위해서 1. Regularization Term 넣기 Weight Decay 1.1 L1 Regularization 0에 매우 가까운 대부분의 가중치 가장 중요한 입력의 작은 하위 집합을 선택 입력 잡음에 강함 $gamma$ : 비율 조정 1.2 L2 Regularization 최고 가중치에 불이익 일부 입력 만 많이 사용하지 않고 모든 입력을 약간 사용하도록 권장 L2..
딥러닝(Deep Learning) - CNN 최신 분류 아키텍쳐는 다음과같다. 1. AlexNet - 제프리 힌튼 & x팀이 설꼐 - 상위 5개의 오류율을 15.3%로 줄임, 학습속도를 높이기 위해 GPU 사용 2. VGG-16 - 옥스포드 VGG(Visual Geometry Group) 에서 사용 - 3x3 합성곱층을 기반으로 하는 단순한 아키텍쳐를 다른층에 겹겹히 쌓아 올린뒤 최대 풀링층으로 보냄 3. Inception - google net - 서로 다른 크기의 커널을 같은 수준에서 포괄게 결합하여 인셉션 층을 사용 4. ResNet - Microsoft Research Asia에서 소개한 residual net 5. MobileNet - 모바일과 임베디드 시스템에 적합하게 설꼐 - 네트워크 훈련에..
객체 검출 알고리즘과 코드 1. R-CNN(Regions of the convolutional neural network) - Girshick이 제안 - 몇개의 박스를 제안하고 박스 중 하나가 실측값과 일치하는지 확인 - we focused on two problems: (1) localizing objects with a deep network (2) training a high-capacity model with only a small quantity of annotated detection data. - Detection의 경우 이미지 내에서 object를 localizing 요구 -> 해결방법 1. sliding window 방식 적용 2. high spartial resolution 유지하기 위..
.. https://colab.research.google.com/github/rwightman/pytorch-image-models/blob/master/notebooks/EffResNetComparison.ipynb#scrollTo=xx-j8Z-z_EGo 불러오는 중입니다... https://github.com/Tony607/efficientnet_keras_transfer_learning/blob/master/Keras_efficientnet_transfer_learning.ipynb Tony607/efficientnet_keras_transfer_learning Transfer Learning with EfficientNet in Keras. Contribute to Tony607/efficien..
퍼셉트론에서는 활성화함수로 계단 함수를 이용한다. 신경망의 활성화 함수는 출력계층의 값이 커지면 최종 출력이 1로 수렴하는 단위 계단함수와 로지스틱 함수를 사용 1. 시그모이드 함수 신경망에서 자주 이용하는 활성화 함수 신경망에서는 활성화 함수로 시그모이드 함수를 이용하여 신호를 변환하고, 그 변환된 신호를 다음 뉴런에 전달함. 2. 계단함수 3. ReLU 함수 최근에는 ReLU 함수 (렐루함수) 사용 (입력이 0을 넘으면 그 입력을 그대로 출력, 0 이하이면 0 출력) 시그모이드함수와 쌍곡 탄젠트 함수는 미분 계산을 기반으로 두는 함수이지만 ReLU는 0또는 입력값을 그대로 내보내기 때문에 계산이 편리하다 심층신경망(Deep Neural Network, DNN) -> 시그모이드 함수에 전파와 역잔파를 ..
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..