반응형

Machine Learning 75

[Machine Learning] Scikit-Learn

Scikit-Learn(사이킷런) python 머신러닝 라이브러리 Scikit-Learn 설치 # scikit-learn 설치 pip install scikit-learn # 설치 확인 import sklearn sklearn.__verion__ 의존성 라이브러리 Numpy (Numerical Python) Scipy Scipy(사이파이) 파이썬을 기반으로 하여 과학, 분석, 그리고 엔지니어링을 위한 과학(계산)적 컴퓨팅 영역의 여러 기본적인 작업을 위한 라이브러리 Numpy, Pandas, Matplotlib, Sympy 등과 함께 동작 수치적분 루틴과 미분방정식 해석기, 방정식의 근을 구하는 알고리즘, 표준 연속/이산 확률분포화 다양한 통계관련 도구 제공 기능 설명 scipy.integrate 수치적..

Deep Learning Framework

Deep Learning Framework 이미 검증된 수많은 라이브러리와 사전 학습까지 완료된 다양한 딥러닝 알고리즘을 제공하여 개발자가 빠르고 손쉽게 사용할 수 있음 기능 구현이 아닌 문제 해결을 위한 핵심 알고리즘 개발에만 집중할 수 있도록 도와줌 솝쉽게 GPU를 활용한 연산을 사용할 수 있게 지원 ※ Framework 응용 프로그램을 개발하기 위한 여러 라이브러리나 묘듈 등을 효율적으로 사용할 수 있도록 묶어 놓은 일종의 패키지 Theano 최초의 딥러닝 라이브러리 중 하나로 파이썬(Python) 기반 CPU 및 GPU의 수치계산에 매우 유용한 선형대수 심벌 컴파일러 미분, 선형대수 계산을 포함해 Symbolic expression을 통한 정의된 수식을 사람처럼 미분하거나 재정리해서 전체 계산에 ..

[Machine Learning] DenseNet

DenseNet Layer간의 정보가 흘러가는 것을 개선하기 위해 ResNet과는 조금 다른 연결 패턴 제안 Dense Connectivity 모든 이전 layer의 output 정보를 이후의 layer의 input으로 받아오는 방법 사용 모든 입력을 sum하지 않고 이어붙임(concatenation) Dense Block이라고 부르는 하나의 connection 덩어리를 만들어서 전통적인 CNN처럼 Convolution, Pooling Layer와 함께 순차적으로 Dense Block들을 거쳐서 마지막에 Linear Layer 후 결과를 뽑음

[Machine Learning] FPN (Feature Pyramid Network)

Goal Multiscale의 물체를 detection하기 위한 일반적인 feature representations을 학습하는 것 모든 scale에 대해 강력한 semantics를 갖도록 하는 것 Challenges example images에서 가능한 모든 scales의 물체를 검출하는 것 Semantic strong multiscale feature map(Feature representationts) 학습하도록 함 Object detection에서 다양한 application(ex. object proposals, box locatlization, instatnce segmentation)을 위한 일반적인 feature design 함 효율적인 multiscale feature map(feature..

[Machine Learning] GRU (Gated Recurrent Unit)

GRU (Gated Recurrent Unit) 2014년 조경현 교수에 의해 제안 LSTM 셀의 간소화된 버전 LSTM Cell에서 두 상태 벡터 ct와 ht가 하나의 벡터로 합쳐짐 하나의 gate controller인 zt가 forget과 input gate를 모두 제어 zt가 1을 출력하면 forget gate가 열리고 input gate가 닫힘 zt가 0일 경우 반대로 forget gate가 닫히고 input gate가 열림 GRU 셀은 output gate가 없어 전체 상태 벡터 ht가 타임 스텝마다 출력되며, 이전 상태 ht-1의 어느 부분이 출력될지 제어하는 새로운 gate controller인 rt가 있다. Reset Gate 과거 정보를 적당히 리셋하자 Sigmoid 함수를 출력으로 이용..

[Machine Learning] LSTM (Long Short Term Memory)

LSTM (Long Short Term Memory) RNN의 결과를 더욱 개선하기 위한 모델 한 층 안에서 반복을 많이 해야 하는 RNN의 특성상 일반 신경망보다 기울기 소실 문제가 더 많이 발생 반복하기 직전에 다음 층으로 기억된 값을 넘길지 안 넘길지를 관리하는 단계를 하나 더 추가 Gate의 도입으로 입력, 출력을 조절할 수 있게 됨 메모리를 이용하여 Long-range corrlation을 학습할 수 있게 됨 Error를 입력에 따라 다른 강도로 전달할 수 있음 RNN의 Vanishing Gradient 문제 해결 LSTM 핵심 아이디어 이전 단계의 정보를 memory cell에 저장하려 흘려 보냄 현재 시점의 정보를 바탕으로 과거의 내용을 얼마나 잊을지 곱해주고 그 결과에 현재의 정보를 더해서..

[Machine Learning] Transfer Learning with CNNs

Transfer Learning 기존에 만들어진 모델을 사용하여 새로운 모델을 만들 시 학습을 빠르게 하며, 예측을 높이는 방법 dataset에서 학습을 시키면 overfitting이 일어날 가능성이 많아짐으로 많은 dataset에서 학습을 시킨 일부의 layer들을 가져와서 적은 dataset에 적용 모든 데이터셋으로 학습을 시키면 초반 layer에서는 generality한 파라미터들이 나오고 후반 layer에서는 specificity 한 파라미터들이 나옴 Transfer learning은 초반 layer에서 나오는 generality한 파라미터를 이용하는 것 Transfer Learning 이점 복잡한 모델일수록 학습시키기 어려운 것을 해결할 수 있음 학습시간이 단축됨 Fine-Tuning 전략 1...

[Machine Learning] ResNet(Residual Network)

ResNet (Residual Network) AlexNet, VGGNet, GoogleNet 등은 layer를 깊게 쌓아 성능을 높이고자 함 layer가 깊어질수록 학습이 어려워 지고 overfitting, Vanishing Gradient 등의 문제가 여전히 발생 입력 x가 딥러닝 모델 H()를 거쳐 나온 H(x)가 정답 y (1 or 0)을 나타낼 수 있게 mapping 되도록 H() 모델을 학습 이미지 x를 타겟 y로 잘 mapping되는 함수 H(x)를 찾는 것이 아니라 이미지 x로 y를 바로 mapping하는 구조 고려 Skip Connection 구조를 갖음 CNN 구조 ResNET 구조 x->y로 mapping 해야 한다는 idea 최종 출력이 H(x) - x = 0 되도록 weight 학..

[Machine Learning] GoogleNet (Inception V4)

GoogleNet Inception 모듈 사용 22개의 layers, 5M parameters (AlexNET의 1/12 수준) GoogleNet 컨셉 Layer의 깊이를 늘려 성능을 높이고자 했으나 다음과 같은 문제 발생 free paremeter 수 증가 데이터 학습양이 작으면 overfitting 문제 연산량이 늘어남(필터의 개수가 증가하면 연산량은 제곱 증가) Vanishing Gradient 문제 학습은 잘되었으나 테스트할 때 성능이 나오지 않을 수 있다 또한, 모델이 너무 커져 학습과 테스트에 많은 시간을 소비하게 된다 NIN (Network In Network) 일반적인 CNN은 Feature Extraction(convolution + pooling) + classifier(fully co..

[Machine Learning] VGGNet

VGGNet 목표 : 네트워크의 깊이를 깊게 만드는 것이 성능에 어떤 영향을 미치는가 확인 방법 : 깊이의 영향만을 확인하기 위해 커널 사이즈는 가장 작은 3X3으로 고정 6개의 구조를 만들어 성능 비교 layer가 깊어질수록 성능이 좋아지는 것을 확인 VGG16 3x3 Filter 여러 개의 Relu non-linear를 사용할 수 있음 큰 필터로 구성된 하나의 레이어를 작은 필터의 여러 레이어로 나누었기 때문에 Relu non-linerlity가 들어갓 곳이 더 많아짐 학습해야할 weight 수가 많아 줄어듬 regularization(모델의 일반화) 측면에서 큰 이점 학습 속도가 빠름 학습 이미지: 224x224로 고정 다양한 이미지를 crop을 통해 224x224로 크기 고정 VGGNet 단점 f..

[Machine Learning] AlexNet

AlexNet 2012년 개최된 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회의 우승을 차지한 CNN 구조 논문: ImageNe Classification with Deep Convolutional Neural Networks 8개의 layer로 구성 5개의 convolution layer + 3개의 full-connected layer Max Pooling + Overlapping pooling 사용 Overlapping Pooling: stirde를 커널 사이즈보다 작게 pooling size=3, stride=2 최초의 max pooling 시도 → overfitting 막는데 도움을 줌 Activation Function: Relu T..

[Machine Learning] ML Hyperparameter

Hyperparameter Machine learning 학습을 할 때 더 효과가 좋도록 하는 주 변수가 아닌 자동 설정되는 변수를 의미 Learning Rate gradient의 iteration마다 얼마의 gap으로 빠르게 혹은 느리게 이동할지 결정하는 계수 Error/Loss/Cost Function 실제 output과 계산된 output 사이의 차이를 error/loss/cost function이라고 하는데 이 둘의 차이를 어떤 방식으로 계산할지를 지정 Batch Size mini batch처럼 전체 data를 몇 개의 그룹으로 나누어 학습할지를 나눌 그 크기를 의미 Epochs training 반복 횟수 train set에 대해서는 epochs가 늘어날수록 error가 줄어들 수 있지만 over..

[Machine Learning] Neural Network MNIST 데이터 처리

MNIST Dataset 미국 국립표준기술원(NIST)이 고등학생과 인구조사국 직원 7만명이 쓴 숫자를 이용해 만든 데이터 60,000개의 트레이닝 셋과 10,000개의 테스트 셋으로 이루어짐 숫자는 0~1까지 값을 갖는 고정 크기 이미지(28x28 픽셀) 각 픽셀은 밝기 정도에 따라 0부터 255값으로 표현 Data Normalization 데이터의 폭이 클 때 적절한 값으로 분산의 정돌르 바꿔주는 과정 (요소값 - 최소값) / (최대값-최소값), 요소 값 / 최대 값 import tensorflow as tf import matplotlib.pyplot as plt import numpy import os # MNIST 데이터 불러오기 (X_train, Y_train), (X_test, Y_test)..

[Machine Learning] Regularization

Regularization [Machine Learning] - Neural Network의 한계 [Machine Learning] - Supervised Learning Neural Network의 Overfitting 방지를 위해 사용. 모델이 일반성을 띄게 해주는 기법: 모델의 weight들이 너무 완벽하게 overfit되지 않도록 정규화 요소를 추가 모델 복잡도에 대한 penalty를 부여하는 것으로 모델이 복잡해질수록 loss function이 다시 커지도록 만드는 것 L1 Regularization (Lasso) Coss function 뒤에 L1항을 추가해 준 것 Spare solution, 중요한 feature만 살림 예측 값과 정답 값의 오차를 절대값 상수텀을 빼주는 형태 작은 가중치는 ..

728x90
반응형