네이버 부스트캠프/LEVEL-1

    [부스트캠프][WK03 / Day12] PyTorch 구조 학습하기

    1. 강의 내용 AutoGrad & Optimizer (최성철 교수님) 1) torch.nn.Module 딥러닝을 구성하는 Layer의 base class Input, Output, Forward, Backward(weights를 AutoGrad) 정의 학습의 대상이 되는 parameter(tensor) 정의 2) nn.Parameter Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 떄는 required_grad=True로 지정되어 학습 대상이 되는 Tensor 대부분의 layer에는 weights 값들이 지정되어 있기 때문에 우리가 직접 지정할 일은 잘 없음 # y = xw+b, in_features * out_features 만큼의 parameter(weights) 값들..

    [부스트캠프][WK03 / Day11] PyTorch 기본

    1. 강의 내용 Introduction to PyTorch (최성철 교수님) 파이토치는 Dynamic Computation Graph로 자동미분 시 실행시점에서 그래프를 정의하고 텐서플로는 Define and run이라는 기법을 사용합니다. Dynamic Computation Graph는 연산의 과정을 그래프로 표현하며 다음과 같이 볼 수 있습니다. 실행하며 그래프를 생성하는 방식이라는 뜻으로 Define by run 이라고도 합니다. Define and run은 그래프를 정의하는 코드를 먼저 작성하고 실행시점에 데이터를 그래프에 넣어(feed)줍니다. Dynamic Computation Graph는 Define and run 방식에 비해 실행 중간중간 값을 확인하기 쉬워 디버깅에 용이합니다. TF는 p..

    [부스트캠프][WK02 / Day10] Generative Models

    1. 강의 내용 Generative Models 1 (최성준 교수님) 1) Generative Models Generative Model은 단순히 이미지 등을 생성하는 모델이 아니라 더 많은 부분을 차지하고 있습니다. 강아지 이미지가 주어졌을 때, 우리가 학습한 확률분포 $p(x)$를 통해 새로운 강아지 이미지를 생성하는 Generation, 강아지인지 아닌지 구분하는 이상탐지하는 Density estimation 등을 할 수 있습니다. 여기서 Density estimation은 explicit 모델로, 어떤 입력이 주어졌을 때, 그것에 대한 확률값을 얻어낼 수 있는 모델입니다. Generation만을 하는 모델은 implicit 모델이라고 하며 Generation 모델에는 explicit과 implic..

    [부스트캠프][WK02 / Day9] Recurrent Neural Networks

    1. 강의 내용 RNN (최성준 교수님) 1) Sequential Model Sequential data의 가장 큰 어려움은 정의상 길이가 언제 끝날지 몰라 받아야하는 입력의 차원을 알 수 없습니다. 그래서 fully connected layer나 CNN을 활용하지 못합니다. 입력이 가변적이어서 발생하는 문제를 해결하기위해 정보의 개수를 한정($AR(\tau$)) 시킵니다. $\tau$ 시점 전 까지만 입력으로 넣어주는 것으로 $\tau$를 1로 하는 모델이 Markov model입니다. Markov model의 joint distribution을 표현하기 쉬워지는 장점이 있지만 1시점만 보기 때문에 많은 정보를 버리게 됩니다. Latent autoregressive model은 중간에 hidden st..

    [부스트캠프][WK-02 / Day8] Convolutional Neural Networks

    1. 강의 내용 Convolution은 무엇인가? (최성준 교수님) 1) Convolution Convolution의 채널의 개수는 필터의 개수에 따라 달라집니다. 따라서 인풋 채널 숫자와 아웃풋 채널 숫자를 보면 필터의 채널 숫자를 알 수 있습니다. 파라미터의 개수는 커널의 크기*인풋 채널*아웃풋 채널 입니다. 일반적인 CNN은 Convolution layer, pooling layer, fully conneted layer로 구성되어 있는데 Convolution Layer와 pooling layer는 이미지에서 유용한 정보를 뽑아내는 역할(feature extraction)을 하고 fully conneted layer는 원하는 출력값을 얻도록 해줍니다. 하지만 최근에는 Fully connected l..

    [부스트캠프][WK-02 / Day7] Optimization

    1. 강의 내용 Optimization (최성준 교수님) 1) Optimization의 주요 개념 Generalization 학습시 train error는 꾸준히 감소하지만 test error는 그렇지 않을 수 있습니다. 이 경우 Generalization performance는 Test Error와 Training Error의 차이를 말입니다. Generalization이 좋다는 것은 네트워크의 성능이 학습데이터와 비슷하게 나올 것이라는 보장입니다. Overfitting & Underfitting Overfitting은 학습데이터에서 잘 동작하지만 test 데이터에서 잘 동작하지 않는 것을 말하며 Underfitting은 네트워크가 너무 간단하거나 학습을 조금 시켜 학습데이터도 잘 맞추지 못하는 것입니..

    [부스트캠프][WK-02 / Day6] 딥러닝 기초

    1. 강의 내용 딥러닝 기본 용어 설명 (최성준 교수님) 1) Introduction 우리를 좋은 딥러너로 만드는 것은 크게 3가지가 있습니다. 먼저 텐서플로우, 파이토치와 같은 구현실력입니다. 두번째로 수학 스킬이며 마지막으로 논문의 트렌드를 따라가는 것입니다. 인공지능안에 데이터 기반 접근방식인 머신러닝이 포함되어 있고 그 안에 딥러닝이 포함되어 있습니다. 딥러닝의 주요 요소에는 학습을 위한 데이터, 데이터를 통해 무언가를 학습하는 모델, 모델을 학습키는데 사용되는 loss function, loss를 최소화 시키는 알고리즘이 있습니다. 2) Data 데이터는 풀고자 하는 문제에 의존적입니다. 분류문제에는 분류대상 이미지가 필요하며 Semantic Segmentation 문제에는 이미지의 픽셀별로 속..

    [부스트캠프][WK-01 / Day5] 파이썬 기초 4, numpy/pandas

    1. 강의 내용 File / Exception / Log Handling (최성철 교수님) 1) Exception 예상이 가능한 예외 발생 여부를 사전에 인지할 수 있는 예외로 개발자가 명시적으로 정의 합니다. 예상 불가능한 예외 인터프리터 과정에서 발생하는 예외로 개발자의 실수에서 비롯됩니다. 프로그램에서 인터프리터가 알아서 에러를 호출해주고 프로그램을 종료시킵니다. 이 경우 Exception Handling을 통해 대처할 수 있습니다. try~except try: 예외 발생 가능한 코드 except : 예외 발생했을 때 대응하는 코드 Built-in Exception (기본적으로 제공하는 예외) IndexError List의 Index 범위를 넘어갈 때 NameError 존재하지 않는 변수를 호출할 ..