풀잎스쿨 13

풀잎스쿨 - DeepML(CS231N) Lec. 09

오늘은 저번에 못 본 9강을 전부 봤다. 저번에는 AlexNet을 배웠고, 오늘은 VGG, GoogLeNet, ResNet을 배웠다. 1. VGG - 매우 심플하고 딥한 모델이다. - 16 혹은 19층을 쌓았다. - 3x3 CONV stride 1, pad 1 and 2x2 MAX POOL stride 2를 사용했다. - 3x3을 쓰면서 7x7 필터를 쓰는 효과를 얻으면서 더 적은 파라미터를 만들어 계산비용을 줄였다. 2. GoogLeNet - 22개의 층을 가진다. - 인셉션 모듈을 가지고 있다. - 단지 5만개 파라미터만 가진다. (AlexNet에 비해 12배 적다) - 인셉션 모듈은 Multiple receptive field sizes for convolution (1x1, 3x3, 5x5), P..

공부/AIFFEL 2021.02.22

풀잎스쿨 - DeepML(CS231N) Lec. 07 ~ Lec. 09

오늘은 Lec.07의 나머지 부분과 Lec.09의 일부분을 공부했다. (Lec.08은 건너뛰었다.) Lec.07 1. learning rate에 대해 봤다. - learning rate decay : Adam보다는 SGD + Momentum에서 많이 쓴다. - First-Order Optimization : 기울기를 사용하여 선형으로 근사시켰다. 근사치를 minimize 하는 단계이다. - Second-order Optimization : 기울기와 Hessian 행렬을 사용하여 2차적으로 근사시켰다. 근사치를 minima하는 단계 - Second-order에서 BGFS와 L-BFGS가 있는데 딥러닝에서는 잘 사용되지 않는다. - 만약 full batch가 가능하면 잘 작동할 수 있으나, mini batc..

공부/AIFFEL 2021.02.15

풀잎스쿨 - DeepML(CS231N) Lec. 06 ~ Lec. 07

이전에 다 못본 6강을 봤고, 시간이 부족하여 7강의 일부만 들었다. 6강 1. babysitting the learning process - step1 데이터 전처리를 한다 : zero-centered, normalized - step2 사용할 아키텍쳐를 선택한다. : 입력층, 은닉층, 출력층 설계 - 네트워크 초기화 - 전체 데이터를 쓰지 말고 작은 데이터셋만 가지고 학습을 시켜서 모델이 오버피팅 되는지 확인하기 : 오버피팅이 되면 모델이 잘 학습하는 것이므로 좋다. - learning rate가 너무 작으면 cost가 줄어들지 않을 것이고, 너무 크면 cost가 튈 것이다. 2. Hyperparameter Optimization - regularization과 learning rate를 바꾸면서 학..

공부/AIFFEL 2021.02.08

풀잎스쿨 - DeepML(CS231N) Lec. 06

오늘은 6강을 거의 봤다. 시간이 부족하여 전부 보지는 못했다. 1.활성화 함수(Activation Function)의 종류를 보았다. - Sigmoid : 이진 분류에 쓰인다. 0 ~ 1의 값이 나온다. vanishing gradient가 생길 수 있다. zero-centered 하지 못하다. exp함수를 이용하므로 계산이 복잡해진다. - tanh(x) : sigmoid의 단점을 일부 보완한다. zero-centered 하다. 그렇지만 vanishing gradient가 생길 수 있다. - ReLU : max(0, x), vanishing gradient문제를 해결했다. 효율적으로 계산한다. 훨씬 빠르게 수렴한다. 생물학적으로 더 뉴런처럼 행동한다. 그러나 zero-centered하지 못하다. 죽는다 ..

공부/AIFFEL 2021.02.01

풀잎스쿨 - 코딩마스터(Coding Master) 3장. 검색 알고리즘

오늘은 책을 보고 검색 알고리즘을 배우고, 프로그래머스를 통해 2가지 문제를 풀었다. 검색 알고리즘에는 다양한 방법이 있지만 3가지에 대해서 알아보았다. 1. 선형 검색 : 가장 기본적인 알고리즘으로 직선 모양으로 늘어선 배열에서 검색할 때 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘이다. 보초법을 쓰면 더욱 빠르게 검색할 수 있게 된다. 2. 이진 검색 : 배열의 데이터가 정렬되어 있어야 한다는 조건이 있다. 선형 검색보다 빠르게 검색 할 수 있다. 3. 해시법 : 데이터 검색, 추가, 삭제도 효율적으로 수행할 수 있는 방법이다. 해시충돌이 발생하는 경우 체인법과 오픈 주소법으로 대처할 수 있다. 오늘 푼 문제는 1. 정부 배열 numbers가 주어진다. numbers에서 서로 다른 인덱스에 있는 두..

공부/AIFFEL 2021.01.27

풀잎스쿨 - DeepML(CS231N) Lec. 05

오늘은 5강을 처음부터 끝까지 봤다. 수업방법은 4강과 동일하게 했다. 1. CNN의 원리를 간략히 봤다. 2. CNN이 오늘날 어떤 분야에 활용되고 있는지 보았다. 3. input layer와 filter가 만나서 activation map이 되는 과정을 봤다. filter마다 뽑아내는 특징이 다르므로 보통 filter는 여러개를 사용한다. 4. CNN의 구조를 봤다. (CRCRP FC) 5. filter의 작동 방법을 보면서 filter를 거친 후의 output크기를 구하는 일반화 수식을 봤다. 6. stride, padding 개념을 배웠다. 7. padding을 구하는 수식과 parameter를 구하는 수식을 배웠다. 8. 흔히 쓰이는 filter 갯수와 크기, stride, padding 크기를..

공부/AIFFEL 2021.01.25

풀잎스쿨 - 코딩마스터(Coding Master) 1~2장. 알고리즘 기초, 자료구조, 배열

이전에 공부하던 책이 너무 어려워서 책을 바꿨다. 바꾼 책은 "Do it! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬 편"이다. 오늘은 1장(알고리즘 기초), 2장(기본 자료구조와 배열)에 대해서 읽었고, 시간이 빠듯하여 전부 읽지는 못했다. 다음 시간은 미리 읽어오고 얘기를 하는 식으로 하기로 했다. 그리고 프로그래머스에서 "같은 숫자는 싫어"의 연습문제를 풀어봤다. 나는 정확성은 71.9, 효율성은 28.1, 합계는 100.0이 나왔는데 합계 100이 나왔으니 좋은건지 아니면 정확성과 효율성이 둘 다 100이 나와야 좋은건지는 모르겠다. 그냥 통과했다는 것에 의미를 두기로 했다.

공부/AIFFEL 2021.01.20

풀잎스쿨 - DeepML(CS231N) Lec. 04

1. 이전에 일부만 배운 backpropagation에 대해서 배웠다. local gradient들을 미분하여 구하는 법, 하다보니 add, mul, max에 대해서 local gradient의 특징이 나타난다. 2. sigmoid gate를 미분하여 gradient를 구해봤다. 3. CNN 모델에 대해서 backpropagation을 해봤다. 자코비안 행렬(Jacobian matrix)이란 개념이 나왔다. 4. Neural Networks을 배웠다. 계층에 대해서 배웠고, 2-layer Neural Network과 3-layer Neural Network의 구조를 봤다. 5. 인공신경망 함수와 실제 뉴런의 구조를 비교하면서 봤다. 6. 활성함수의 종류를 간략히 살펴보았다. 출처 : cs231n.stan..

공부/AIFFEL 2021.01.18

풀잎스쿨 - DeepML(CS231N) Lec. 03 ~ Lec. 04(일부)

오늘부터 각 조원들끼리 퍼실님께서 정해준 구간만큼 강의를 듣고 정리한 후 모두 모여 발표하는 방식으로 수업을 진행하기로 했다. 1. Optimizer에 대해서 3강동안 배운 것 같다. 함수를 최적화 해야하는 이유, 방법, 원리 등을 배운 것 같다. 역시 너무 어렵다. 2. 4강에서 backpropagation에 대해 각 노드별 영향치를 계산하는 미분법에 대해 짧게 배우고 수업이 끝났다. 김성훈교수님의 모두를 위한 딥러닝을 RNN이전까지 듣고 모두의연구소를 참여했다. 지금까지 해본 결과(어디까지나 개인적인 생각임) 영상에서 개념을 난이도 있게 설명해주시는 듯하다. (미적분 계산은 당연히 할 줄 안다는 바탕이 깔린듯)

공부/AIFFEL 2021.01.11

풀잎스쿨 - 코딩마스터(Coding Master) 4장. 빅오와 자료형

1월 6일 오후에 배운 내용이다. 책 : 파이썬 알고리즘 인터뷰 저자 : 박상길 의 책을 읽고 서로 얘기하면서 이해하고 질문하는 수업방식이다. 1. 오리엔테이션 2. 빅오 - 점근적 실행 시간을 표기할 때 가장 널리 쓰이는 수학적 표기법 중 하나 - 입력의 크기가 충분히 클 때 알고리즘의 효율성에 따라 수행 시간이 크게 차이가 나는가에 대한 것 - 종류 : O(1), O(log n), O(n), O(n log n), O(n^2), O(2^n) - 알고리즘은 흔히 "시간과 공간이 트레이드오프 관계다" - 빅오는 상한을 의미, 빅오메가는 하한을 의미, 빅세타는 평균을 의미한다. - 빅오 표기법은 주어진(최선/최악/평균) 경우의 수행 시간의 상한을 나타낸다. 3. 자료형 - 파이썬의 자료형 종류 : 정수(in..

공부/AIFFEL 2021.01.06