전체 글 14

[CS231n] Lecture 8. Deep Learning Software

목차 1. CPU vs GPU 2. Deep Learning Frameworks 2.1 Pytorch 3. Static vs Dynamic Graphs 1. CPU vs GPU CPU와 GPU에 대해 이야기를 하자면 왼쪽 그림은 CPU 칩의 모습이고 오른쪽 그림은 GPU의 모습이다. 위 그래프는 x축은 모델, y축은 연산에 소요된 시간인데 성능이 하드웨어 크기에 비례하는 것인지 GPU(빨, 주)가 CPU(파)보다 훨씬 적은 시간이 소요됐다. 64~76배 차이가 있는데 무조건 GPU를 쓰는게 좋다는 것을 알 수 있다. 강의에서 말하기를 CPU에서는 병목 현상(bottleneck)이 발생할 수 있기 때문에 GPU를 사용하는게 좋고 데이터는 CPU에 저장하며, 모델은 GPU에서 작동하는 것이 좋다고 한다. 2..

CS231n 2023.03.13

[CS231n] Lecture 7. Training Neural Networks II

목차 1. Stochastic Gradient Descent 1.1 SGD의 문제점 2. SGD + Momentum 3. Nesterov Momentum 4. AdaGrad 5. RMSProp 6. Adam 7. Learning rate 8. Second-order Optimization 9. Regularization 9.1 Model Ensembles 9.2 Dropout 9.3 Data Augmentation 9.4 Others 10. Tranfer Learning 1. Stochastic Gradient Descent SGD는 데이터를 미니 배치로 나눈 후, 데이터 전체를 한꺼번에 사용하여 모델의 가중치를 업데이트 하는것이 아닌 미니 배치마다 가중치를 업데이트하여 속도면에서 개선시킨 최적화(Opt..

CS231n 2023.03.04

[CS231n] Lecture 5. CNN: Convolution to Neural Networks

Table of contents 1. Background 2. Receptive field 3. Convolution 4. CNN 4.1 Fully Connected Layer 4.2 Convolutional Layer 4.3 Output Size & padding 4.4 Pooling 1. Background CNN이 나오게 된 배경 CNN(Convolutional Neural Networks)의 개념이 나오기 전까지 우리는 Multi-layered Neural Network(이하 MLP, Multi Layer Perceptron)를 사용했었다. 기존에 존재하던 MLP를 이용하여 이미지를 처리하기 위해서는, 이미지를 1차원 벡터로 쭉 펼쳐야 했다. 즉 MLP를 사용하기 전에 많은 전처리 과정이 필요했습..

CS231n 2023.03.02

[CS231n] Lecture 4. Backpropagation and Neural Networks

Table of contents 1. Introduction 1.1 Forward propagation 1.2 Backward propagation 1.3 computational graph 1.4 chain rule 1.5 Partial Derivative 2. Backward propagation 2.1 Backward propagation 2.2 Gradients for Vector 3. Neural Networks 3.1 Neural Networks 1. Introduction 미분을 통해 최적화를 하는 방법에는 크게 두가지가 있었습니다. Numerical gradient (수치적 미분) : 속도가 느리고 근사치를 찾는 방법임. Analytic gradient (해석적 미분) : 빠르고 정확하지만..

CS231n 2023.02.14

[CS231n] Lecture 2. Image Classification

본 포스팅은 Stanford University에서 제공하는 CS231n_2017 유튜브 강의를 토대로 정리한 글입니다. https://youtu.be/OoUX-nOEjG0 목차 1. 이미지 분류(Image Classification)란? 1.1 디지털이미지란? 1.2 이미지에 관해 해결해야할 문제 2. 이미지 분류 모델 2.1 간단한 이미지 분류 모델 구현 2.2 데이터 기반 (data driven-approach) 2.3 NN 모델 2.4 KNN 모델 2.5 KNN 단점 3. 거리 함수(Distance Metric) 3.1 L1 함수 3.2 L2 함수 3.3 L1 vs L2 4. 파라미터와 하이퍼파라미터 (Parameter & Hyper parameter) 5. 교차검증 (cross-validate)..

CS231n 2023.02.03

[핸즈온머신러닝] CH.9 비지도 학습 (Unsupervised Learning)

목차 1. 군집 (Clustering) 1.1 k-평균 1.2 k-평균의 한계 2. DBSCAN 2.1 DBSCAN 동작 원리 2.2 DBSCAN을 활용하여 새로운 샘플의 클러스터 예 3. 가우시안 분포 4. 가우시안 혼합 모델 (Gaussian mixture model) 이란? 4.1 가우시안 혼합 모델(GMM)의 그래프 모형 4.2 기댓값-최대화(EM) 알고리즘 4.2.1 초기화 4.2.2 기대값 단계 4.2.3 최대화 단계 4.2.4 EM 알고리즘 정리 4.3 이상치 탐지 4.4 클러스터 개수 선택하기 5. 베이즈 가우시안 혼합 모델(BayesianGaussianMixture model) 5.1 베이즈 가우시안 혼합 모델 모형 5.2 베이즈 정리 비지도 학습이란? 비지도 학습인 라벨링이 되어 있지 ..

[핸즈온머신러닝] CH8. 차원 축소 (Dimension Reduction)

목차 0. 차원이란? 1. 차원축소란? 2. 차원축소를 하는 이유 3. 차원의 저주 3.1. 차원의 저주란? 3.2. 차원의 저주를 극복하는 방법 4. 차원을 축소하는 방법 4.1 변수 선택 (feature selection) 4.2 변수 추출 (feature extraction) 5. 차원축소를 위한 두가지 접근방법 5.1 투영 5.2 매니폴드 6. 차원축소기법 6.1 pca 7. 차원축소의 한계 0. 차원이란? 기하학적의미에서 차원(dimension)이란 공간 내에 있는 점의 위치를 나타내기 위해 필요한 축의 개수입니다. 즉, 어떤 데이터(점)의 특징(위치)을 서술하는 데 사용되는 독립적인 특성(차원)의 개수라고 생각할 수 있습니다. 따라서 이러한 차원을 축소하거나 확장하여 여러 문제들을 해결할 수 ..

[핸즈온머신러닝] CH7. 앙상블(Ensemble) 학습

목차 앙상블 기법이란? 앙상블 기법의 종류 보팅 배깅, 페이스팅 랜덤 포레스트 부스팅 스태킹 1. 앙상블 기법이란? 여러개의 학습 모델(분류, 회귀 ...) 을 학습하여 학습된 각 모델에서 예측을 만들어 낸 후 그 예측들을 결합하여 보다 정확도가 높은 예측을 만들어 내는 기법이다 이러한 앙상블기법에는 보팅 (하드, 소프트), 배깅, 페이스팅, 부스팅 등 다양한 기법들이 존재하고 있 2. 앙상블 기법의 종류 2.1 Voting 보팅 (투표 기반 분류기) 보팅 보팅은 말 그대로 같은 데이터셋을 통해서 각 모델들을 학습시키고 이들의 예측을 투표를 통해서 최적의 예측으로 만들어 내는 방법으로 하드 보팅과 소프트 보팅이 있다. 2.1.1 하드 보팅(Hard voting)과 소프트 보팅(Soft voting) 하드..