Deep Learning
Lecture 3 | Loss Functions and Optimization Loss fuction loss function을 설명하기 위해 몇 가지 가정을 두었다. 가정 : 3개의 training 이미지가 있고 f(x,W) = Wx라는 분류기에 넣어 3개의 class로 분류하여 3개의 score를 계산하였다. 주어진 데이터의 수식은 다음과 같다. 여기서 x_i는 입력 데이터 (여기서는 3장의 이미지), y_i는 정답 라벨 (여기서는 고양이, 차, 개구리)를 나타낸다. 일반적인 최종loss를 구하는 수식은 다음과 같다. loss는 각각의 이미지에 score값, 정답라벨을 가지고 loss fuction을 구한 뒤 그것들의 합을 구하고 전체 N개로 나눈 것이다. Multiclass SVM loss loss..
Lecture 2 | Image Classification Image Classification (이미지 분류) Image classification concept 이미지 분류는 컴퓨터 비전에서 중요한 과업이다. 컴퓨터 비전에서 이미지분류 과정은 다음과 같다. 이미지를 입력 데이터로 넣는다. 카테고리가 담긴 것들 중 하나를 골라 낸다. The Problem 하지만 이러한 과정에는 문제점들이 있다. 위와 같이 컴퓨터는 사람과 달리 이미지를 일련의 숫자들로 인식한다. Challenges 이미지 분류에서는 위의 문제점말고도 많은 문제점들이있다. Viewpoint variation (객체를 보는 각도) Illumination (조명) Deformation (객체의 형태 변환) Occlusion (객체가 가려짐)..
이번에 Study&Post의 주제는 스텐포드 대학의 딥러닝 강의인 CS231n이다. 나는 밑바닥부터 시작하는 딥러닝을 읽고 딥러닝에 대한 개념이 얼추(?) 잡힌 상태이다. 하지만 이것에 픽스하지 않고 이해한 내용들을 바탕으로 다른관점에서 바라보는 것도 중요하다고 생각하여 다시 한 번 딥러닝에 대한 스터디를 선택하였다. 다행히 지금 교육받고 있는 Aiffel의 풀잎스쿨에서 CS231n을 진행한다 하여 이번에는 단체 스터디 형식으로 진행될 것 같다. 하지만 Aiffel에서는 한 주의 한 강씩 해서 총 6주동안 6강의 강의를 진행할 것 같아 나머지는 따로 혼자 진행할 예정이다. 또한 1강은 introdution이기 때문에 2강부터 진행할 것이다. 그럼 시작! 🔥 Syllabus http://cs231n.sta..
8-0. Intro 이번장의 목표는 딥러닝의 특징과 과제, 그리고 가능성을 알아 가는 것이다. 8-1. 더 깊게 우리는 그 동안 신경망에 대해 많은 것을 배웠다. 이제 그 동안 배운 기술들을 활용해 MNIST 데이터셋의 손글씨 숫자 인식에 도전해보자. 신경망 구현 손글씨 숫자 인시모델을 만들기 위해 VGG 신경망을 참고해 다음과 같은 신경망을 구현하였다. 위 신경망의 구현 내용은 다음과 같다. 3x3의 작은 필터를 사용한 합성곱 계층 활성화 함수는 ReLU 완전연결 계층 뒤에 드롭아웃 계층 사용 Adam을 사용해 최적화 가중치의 초기값은 He초기값 사용 이와 같은 깊은 신경망의 특징은 층이 깊어지면서 채널 수가 더 늘어난다는 것이다. 또한 풀링 계층에서 중간 데이터의 공간 크기를 점차 줄여나간다. 이 신..
7-0. Intro 이번장의 목표는 합성곱 신경망(CNN)의 매커니즘을 자세히 설명하고 이를 파이썬으로 직접 구현하는 것이다. 자 그럼 시작해보자! 7-1. 전체구조 합성곱 신경망의 전체 구조는 합성곱 계층과 풀링 계층 그리고 앞에서 배운 완전연결 계층(Affine 계층)을 연결한 구조이다. 먼저 지금까지 사용해왔던 Affine 계층을 다시 그림으로 살펴보자. 그림에서는 Affine 계층과 ReLU 계층을 4개를 연결하였고 마지막에는 Affine 계층과 Softmax 함수를 이용해 최종결과를 출력한다. 이 그림은 합성곱 신경망을 표현한 그림이다. CNN의 특징은 합성곱 계층과 ReLU 그리고 Pooling 계층을 앞에 구현하였고 뒤에는 Affine, ReLU조합을 그대로 구현하였다는 것이다. 7-2. 합..
6-0. Intro 이번 장의 주제 가중치 매개변수의 최적값을 탐색하는 최적화 방법 가중치 매개변수 초깃값 하이퍼파라미터 설정방법 오버피팅의 대응 책 (가중치 감소, 드롭아웃) ✔️ 이번장의 목표 : 신경망 학습의 효율과 정확도를 높이기! 6-1. 매개변수 갱신 신경망 학습의 목적은 손실 함수의 값을 최소화 하기위한 매개변수 찾기이다. 이러한 문제를 해결하는 방법을 최적화(optimization)이라고 한다. 우리는 지금가지 매개변수의 기울기를 이용해 손실함수의 값을 최소화 시키는 확률적경사하강법(SGD)방법을 살펴보았다. 이제 SGD의 단점들을 살펴보고 다른 최적화방법들을 살펴보자. 확률적 경사 하강법(SGD) 확률적 경사 하강법이 무엇인지 잊어버렸을 수 도 있으니 복습해보자. class SGD: ""..
5-1. Intro 이전장 4장에서 가중치 매개변수에 대한 손실 함수의 기울기를 수치미분을 통해 구하였다. 수치 미분은 단순하고 구현도 간단하서 유용하지만 시간이 오래 걸린다는 단점을 가지고 있다. 이번장에서는 개선방안인 오차역전파법을 배워보자. 5-1. 계산 그래프 오차역전파법을 이해하는 방법으로는 크게 수식을 통한 이해, 계산 그래프를 통한 이해가 있다. 여기서 우리는 두 번째 방법인 계산 그래프를 통해 오차역전파 법을 이해해보자. 💡 계산 그래프란? 계산 과정을 그래프로 나타낸 것이다. 여기서 그래프는 복수의 노드와 에지로 표현된다. 자 그럼 계산 그래프를 활용해 문제를 풀어보자. 문제 -> 현빈 군은 슈퍼에서 사과를 2개, 귤 3개 샀습니다. 사과는 1개의 100원, 귤은 1개 150원입니다. 소..
4-0. Intro 💡 학습이란? 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 이번 장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 소개한다. 4-1. 데이터 학습 기계학습의 중심에는 데이터가 존재한다. 기계학습에서는 이러한 데이터들을 분석하고 특징들을 추출하여 예측을 한다. 신경망에서는 이런한 특징을 선정하는 것을 자동적으로 해준다. 위에 그림은 사람, 기계학습, 신경망의 차이를 직관적으로 보여준다. 사람은 직접 눈으로 보며 특징을 찾아내고 검출하지만 기계락습은 사람이 생각한 특징을 토대로 기계학습을 한다. 반면에 신경망에서는 데이터의 특징을 자동으로 선정하며 결과를 추출한다. 이러한 과정의 딥러닝을 종단간 기계학습이라고 한다. 훈련 데이터와 시험 데이터 보통 기계학..
3-0. Intro 우리는 앞 장에서 아무리 복잡한 처리도 다층 퍼셉트론을 활용한다면 구현할 수 있다고 배웠다. 하지만 우리는 그 동안 퍼셉트론을 구현할 때 가중치, 편향 값을 임의로 우리가 정해주었다. 이번장에서 배울 신경망은 적절한 가중치, 편향을 알아서 정해준다. 이러한 자동으로 학습하는 능력을 가진 신경망의 성질은 앞으로 매우 중요하다. 그러니 후딱 시작하자!! 3-1. 퍼셉트론에서 신경망 먼저 신경망이 어떻게 생겼는지 살펴 보자. 신경망은 입력층, 은닉층, 출력층으로 구성되며 은닉층은 입력층, 출력층과 달리 사람에게 보이지 않는 층을 말한다. 단순히 그림만 봤을 때는 기존 퍼셉트론과 다를 것이 없어보인다. 퍼셉트론 네트워크에서 편향 표현 기존 퍼셉트론 그림에서는 편향을 표현하지 않았지만 위의 그..



