AI/CS231n
[11강] Detection and Segmentation
[11강] Detection and Segmentation
2020.12.19지난 시간에는 Recurrent Neural Networks를 소개했었다. 오늘은 Detection과 Segmentation등 Compuver Vision task들을 소개할 예정이다. Segmentation, Localization, Detection 등 다양한 Computer Vision Tasks와 이 문제들을 CNN으로 어떻게 접근해 볼 수 있을지 고민할 예정이다. Sementic Segmentation Sementic Segmentation 문제에서는 입력은 이미지이고 출력으로 이미지의 모든 픽셀에 카테고리를 정한다. 밑에 왼쪽 예제를 보면 입력은 고양이이고, 출력은 모든 픽셀에 대해서 그 픽셀이 "고양이, 잔디, 하늘, 나무, 배경"인지를 결정하는 것이다. Sementic Segmentatio..
[9강] CNN Architectures
[9강] CNN Architectures
2020.12.05오늘 수업에서는 CNN 아키텍쳐들을 알아볼 예정이다. 지난 시간에는 딥러닝 프레임워크들을 배웠다. PyTorch, Tensorflow, Caffe2등 다양한 프레임워크들이 있었는데 이들을 사용해서 NN, CNN과 같은 규모가 큰 computational graph를 아주 쉽가 구성할 수 있고, gradient를 쉽계 계산 할 수 있도록 도와주며, GPU에서 효율적으로 작동하는 것을 확인할 수 있었다. 프레임워크들은 보통 모듈화된 레이어를 통해 동작했고 모델 아키텍처를 구성하기 위해서는 그 레이어들을 하나의 시쿼스로 정의하고 묶어주면 됐다. 이렇게 아주 복잡한 아키텍처도 쉽게 구성할 수 있도록 해주는 것이다. 오늘은 최신 CNN 아키텍처들에 대해 배워볼 예정이다. 사람들이 가장 많이 사용하는 아키텍쳐들로,..
[8강] Deep Learning Software
[8강] Deep Learning Software
2020.11.28오늘 강의에서는 딥러닝 소프트웨어에 대해 이야기할 예정이다. 매년 많이 바뀌는 주제라 흥미로운 주제 중에 하나라고 한다. 지난 시간에는 SGD, Momentum, Nesterov, RMSProp, Adam 등 딥러닝 최적화 알고리즘에 대해 살펴보았다. 이 방법들을 모두 기본적인 SGD를 조금씩 변형시킨 방법이었는데, 구현이 간단한데, 네트워크의 수렴속도가 빨랐다. 그리고 regularization (일반화) 중에 특히 Dropout에 대해 배웠다. Dropout은 forward pass에서 네트워크의 임의의 부분을 0으로 설정하고, test time에서는 그 noise를 marginalize out 했었다. 또한 transfer learning (전이 학습)에 대해서도 배웠다. 어떠한 데이터셋에 대해 p..
[6강] Training Neural Networks I
[6강] Training Neural Networks I
2020.11.14CNN은 spatial structure를 보존하기 위해 convolutional layers를 사용하는 NN의 한 종류이다. (FC레이어는 이미지를 다루기 위해 이미지 행렬을 한 줄로 쭉 펴는 작업(Flatten)를 하는데 이미지에서 붙어 있던 픽셀들이 Flatten한 행렬에서는 서로 떨어진다 => 이미지의 공간적 구조(spatial structure) 무시. 반면에 CNN은 필터를 슬라이드함으로써 주위 픽셀들을 계산하면서 이미지의 공간적인 구조를 보존한다.) Conv 필터(weights)가 입력 이미지를 슬라이딩해서 계산한 값들이 모여 각 출력 Activation map을 만든다. Conv layer는 각 레이어 마다 다수의 필터를 사용할 수 있고, 각 필터는 서로 다른 Activation map을 ..
[5강] Convolutional Neural Networks
[5강] Convolutional Neural Networks
2020.11.07이번에는 Convolutional Layer에 대해 배울 것이다. 먼저 CNN의 역사를 알아보자. 1957년 Frank Rosenblatt가 Mark I Perceptron machine 을 개발했다. 이 기계는 perceptron이라고 불리는 알고리즘을 구현한 최초의 기계인데, 이 알고리즘은 우리가 배운 Wx + b 와 유사한 함수를 사용하고 가중치 W를 update하는backprop과 유사한 update rule이 존재했다 하지만 출력 값이 0 또는 1이다. 그리고 1960년에는 Widrow와 Hoff가 최초의 Multilayer Perceptron Network였던 Adaline and Madaline을 개발했다. Neural network layers와 비슷한 모양을 했지만 backprob가튼 학..
[4강] Introduction to Neural Networks
[4강] Introduction to Neural Networks
2020.10.31오늘 강의 내용은 backpropagation과 neural network 이다. classifer를 어떻게 정의하는지는 함수 f를 통해 알 수 있다. x가 입력값이고 weights W를 파라미터로 가지로 있고 출력값(output)은 분류하고자 하는 클래스에 대한 score vector이다. 또한, loss function도 배웠는데 loss function은 데이터 항의 조합으로 이루어져 있는데 정규화 항을 포함하고 있다. 정규화 항은 얼마나 우리의 모델이 단순한지 더 나은 일반화를 위해 적합한 단순 모델을 가지고 있는지를 표현하게 해준다. 또한, 우리는 최적의 loss를 갖게 하는 파라미터 W를 찾고자 했다. 그래서 loss function의 W에 관한 gradient를 찾았다. 최적화를 통해 gra..
[3강] Loss Functions and Optimization
[3강] Loss Functions and Optimization
2020.10.30이번 시간에는 W를 어떻게 정할까를 고민하고 최적의 W를 구하는 방법에 대해 이야기할 예정이다. 지난시간 임의의 W를 가지고 이미지에 대한 10개의 클래스 스코어를 계산했다. 밑에 예시를 보면 왼쪽에 고양이 이미지에 대해 고양이 클래스는 2.9 스코어를 준 반면 개구리 클래스는 3.7 스코어를 줬다. 우리는 정답 클래스가 제일 높은 클래스 스코어를 주기를 바란다. 그러므로 임의의 W를 가지고 만든 이 분류기는 잘 동작하지 않는 것을 알 수 있다. 중간에 자동차 이미지에 대한 클래스들의 스코어를 보면 여기서는 자동차 클래스가 다른 클래스들 보다 6.04로 제일 높은 스코어를 줬는데 이것은 좋은 예시이다. 하지만 개구리 이미지는 개구리 클래스가 -4.34라는 다른 클래스의 점수보다도 낮은 점수를 줬기 때문에..
[2강] Image Classification
[2강] Image Classification
2020.10.17Image classficiation은 컴퓨터 비전에서 핵심과제이며 CS231n 강의에서 우리가 주로 다룰 문제이다. Image classificiation 과정에서 첫 단계는 시스템이 이미지를 입력 받는 것이다. 예를 들어 고양이 사진을 입력 받는다고 해보자. 시스템에는 이미 강아지, 고양이, 트럭, 또는 비행기 같이 미리 정해놓은 카테고리나 라벨 집합이 존재한다. 그러므로 컴퓨터가 해야하는 일은 이미지(고양이)를 보고 어떤 카테고리에(고양이 카테고리) 속할지 고르는 것이다. 이 것은 우리 뇌에게는 매우 쉬운 문제이지만, 기계에게는 아주 어려운 문제다. 컴퓨터에게 고양이 이미지는 아주 큰 격자 모양의 숫자집합으로 보인다. 그리고 각 픽셀은 세 개의 숫자로 표현되는데 각각 red, green, blue를..
[0강] 딥러닝 기초 이론 스터디 - CS231n
[0강] 딥러닝 기초 이론 스터디 - CS231n
2020.10.10Standford University 의 CS231n: Convolutional Neural Networks for Visual Recognition 강의를 매주 들으며 스터디한 내용 (번역 및 정리)을 매주 블로그에 포스팅 할 계획이다. 🕵️♂️ 강의 소개 컴퓨터 비전은 이제 우리 사회에서 어디서나 볼 수 있게 되었다 - 검색, 이미지 이해, 앱, 의학, 드론, 자율주행차 등... 이런 프로그램들의 핵심은 이미지 분류 (image classification = 단일 객체 분류), 로컬라이제이션 (localization = 단일 객체 위치 정보 파악), 인식 (detection = 여러 객체에 대해 classification과 localization 동시 수행)과 같은 시각적 인식(Visual Reco..
[1강] Introduction to Convolutional Neural Networks for Visual Recognition
[1강] Introduction to Convolutional Neural Networks for Visual Recognition
2020.10.10이 강의는 Computer Vision (컴퓨터 비전)에 관한 강의다. 소개 1. Computer Vision 이란? 말 그대로, Visual data (시각 데이터)에 대한 연구다. 2. 왜 이 공부를 해야 할까? 지난 몇 년간 시각 데이터의 양이 어마어마하게 많아졌기 때문이다! 우리 옆에는 카메라가 1개 또는 3개까지 달린 스마트폰이 항상 존재한다. 이런 센서들을 통해 엄청난 양의 시각 데이터가 만들어지는 것이다. CISCO는 2015년 연구에서 2017년에는 인터넷 트래픽의 80% 이상이 비디오일 것이라고 예상했다 (이미지와 같은 다른 타입의 시각데이터를 빼고 오직 비디오만 고려). 그러므로 인터넷에 돌아다니는 대부분의 데이터는 시각 데이터다. 우리는 이 데이터를 이해하고 활용할 수 있는 알고리즘을..