분류 전체보기 79

Week_3 Pytorch - view vs. reshape

두번째로 헷갈리는 개념은 view 와 reshape이다. reshape함수는 numpy에서도 자주 쓰이는 함수여서 친숙할 것이다. 이름 그대로 shape를 '다시' 정해준다. view도 거의 똑같다. 같은 기능을 하지만 하나의 차이점은 데이터 값의 복사 유뮤 인데, 이를 이해하기 위해서는 우선 Contiguous라는 개념을 알아야한다. Contiguous : Torch의 Array의 값이 연속적인 메모리 위치를 가지는 상태 [ Contiguous vs. Noncontiguous ] 왼쪽 그림을 보면 이해가 쉬운데, 맨 윗줄이 메모리 공간을 쭉 펴논거라고 하자. 왼쪽은 앞에서부터 순차적으로 메모리 위치가 이어진다. 오른쪽은 메모리 위치가 섞여 있다. view : contiguous tensor에서만 작동함..

Week_3 Pytorch - Squeeze vs. Unsqueeze

Python과 Pytorch의 특장점 중 하나는 미리 구현된 라이브러리와 모듈들이 풍부하다는 점이다. 하지만 풍부할 수록 알아야할 가짓수는 n만개,, 그중에서도 헷갈리지만 유용한 개념 몇가지에 대해 리뷰하겠다. 우선 Squeeze 와 Unsqueeze! 기본적으로 data dimension manipulation에 관한 함수이다. 딥러닝 모델을 구축하다보면 input data의 차원을 맞춰야 하는 경우가 생기는데, 그럴때 유용하게 사용가능하다. Squeeze : Tensor의 차원을 줄이는 것 squeeze_tensor = torch.rand(size=(2,1,2)) #tensor([[[0.1117, 0.8158]], # [[0.2626, 0.4839]]]) squeeze_tensor.squeeze() ..

Week_2 딥러닝에서 비선형성이 중요한 이유

이전 시간에 다뤘던 MLP의 내용을 다시 떠올려봅니다! Multi-Layer-Perceptron이란 여러층의 퍼셉트론으로 이루어진 신경망으로, 왼쪽은 퍼셉트론의 예시입니다. 어떤 신호를 입력받아 y라는 결과를 출력하는 흐름을 가지고 있습니다. 흔히, 딥러닝에서는 Activation Function을 사용하는게 중요하다고들 하는데, 활성화 함수가 뭐가 특별하기에 중요한걸까요? cs231n_6 ☜ 활성화 함수 대한 정리 정답은 바로 비선형성에 있습니다! 1900년대 인공지능의 침체기를 야기한 영구미제(지금은 아님ㅎㅎ) XOR problem에 대해 알아보겠습니다. x1, x2입력이 있을때, 출력값 y를 0과 1로 나누는 기준선을 찾고싶은데, w1x1 + w2x2 = y의 일반적인 선형회귀로는 찾을 수 없었습니..

Week2_뉴럴 네트워크 , MLP

딥러닝이란 무엇일까 ? 인공지능의 정의는 매우 광범위하다. 간단하게 사람의 지능, 사고의 과정을 모방한 모든것을 '인공지능'이라고 할 수 있다. 그 중에서도 딥러닝은 Neural Network의 구조를 사용한 인공지능이다. 이 점을 유의하며 MLP에 대해 정리해보겠다. Multi-Layer Perceptron Neural Network라는 이름을 갖게 된 이유는 딥러닝의 기본 단위하고 할 수 있는 Perceptron 의 구조 때문이다. 그림의 왼쪽은 인간의 신경게를 구성하는 신경 세포이다. 어떤 자극을 입력 받았을때 그거를 활성화시키고 다음 세포로 전달하고 등등... 이런 일련의 과정을 뉴런은 반복한다. Perceptron의 개념도 뉴런으로부터 왔다.(?) 정확히 같은 기능을 하는것은 아니지만, 활성화 ..

Week_2 Optimization, 중요한 개념

Optimization , 최적화는 convex optimization, gradient-free optimization 등등 분야가 굉장히 많다. 각각 한학기는 잡고 깊게 팔만한 내용이지만, 핵심만 추려서 정리해보겠다. Important Concepts in Optimization _ 확실히 짚고 넘어가야하는 개념 ⭐️⭐️ 1. Gradient Descent : First-order iterative optimization algorithm for finding a local minimum of a differentiable function Loss function, 손실 함수에 대해 1차 편미분을 해서 구한 Gradient에 learning_rate를 곱한값을 parameter(ex.Weight, b..

Week1_Python_File / Exception / Log Handling

모르면 프로그래밍 하기 어려운 삼총사 : Exception/File/Log Handling 1. Exception Handling 프로그래밍할때 예상치 못한 많을 일들을 최대한 대비하기 위해 예외처리(Exception)을 해준다. 직접 if & print문을 찍어서 할수도 있지만, (사실 본인이 가장 편한대로 하면됨) Exception Handling 문법을 사용했을때 훨씬 편리한 경우도 많다는점!! if문은 -> '알고리즘 로직 처리' 에 주로 쓰이고, Exception은 -> 잘못된 입력, 데이터 유실 등등 잘못된것을 바로잡기 위한 용도라고 보면 된다. [try ~ except] 기본적으로 아래와 같은 문법을 따른다. try: 예외 발생 가능 코드 except : 예외 발생시 대응하는 코드 * Exc..

cs231n - 13강 - Generative Models

*본 글은 cs231n 13강의 내용을 정리 요악한 글입니다. 오늘은 비지도 학습의 대표격인 생성모델에 대해 알아보겠습니다. Supervised Learning vs. Unsupervised Learning Supervised 일명 지도학습은, 학습데이터의 label, 정답이 주어진 학습법입니다. 아래 그림과 같이 고양이 사진에 'cat'이라는 label이 주어지고, 또 여러 물체가 있을때 어떤 물체가 각각 어떤 클래스에 속하는지 label이 주어지기도 합니다. 이처럼 주어진 데이터와 그 label을 학습하며 새로운 data와 그에 따른 label을 맵핑하는 함수를 찾는데 지도학습이라고 할 수 있습니다. 반대로 Unsupervised Learning, 비지도 학습은 정답 레이블이 주어지지 않고 데이터를 ..

Information Theory 이해하기 - KL Divergence, JSD

오늘은 cross entropy에 이어 KL Divergence에 대해 설명하겠습니다. 참고로 여기서 Divergence의 의미는 벡터장의 발산 같은 개념이 아니라, “차이”를 다른 말로 쓴 것일 뿐입니다. 처음 공부할때 이걸 몰라서 삽질을 했던 멍청한 경험이 있습니다. ㅎㅎ 저말고 그런사람이 또 있을까요? 어떤 두 좌표 $x_1$,$x_2$가 가까운지를 판단할때, 어떤 방법을 사용할 수 있을까요? 두 좌표값의 절댓값 차이를 구해서 나타낼수도 있고, (Manhattan Distance) 공식을 사용해 두 좌표 사이의 직선 거리를 구해서 판단 할 수도 있죠. (Euclidean Distance) 그 외에도 수없이 많은 방법들이 있습니다. 분포도 마찬가지입니다. 두 확률분포의 '근사한정도', '서로 닮았는지..

부스트캠프 Ai tech 2기 합격 후기

네이버 커넥트재단에서 주관하는 부스트캠프 Ai tech 2기에 최종 합격했다. 뭔가 카테고리도 만들어서 합격 후기를 떡하니 박아놓으면, 캠프 내내 정리글 올리는데 동기부여가 될것 같고 해서ㅎㅎ 간단하게 후기를 작성해보려 한다. 사실 대학원에 가고 싶기 때문에 부캠을 하는게 도움이 될지 안될지도 고민이 많이 됐었고...(사실 아직도..) 1년짜리 졸프를 앞둔 시점에서 반년을 캠프에 쏟는다는게 부담스럽기도 했다.. 근데 1기때부터 관심이 있던 교육이기도 하고 성격상 안하면 후회할거같아서 일단 하기로함!! 3학점만 들으면서 병행할 예정이다. 따라서 다음학기는 무조건 비대면이어야해!! 모집일정은 아래와 같았다. 1차와는 다르게 단독으로 있던 BAT시험이 빠지고, 1차 코딩테스트에 포함되었다. [전형] k-dt전..

Information Theory 이해하기 - Cross Entropy

이번 글에서는 지난번의 정보이론 소개에 이어 딥러닝에서 많이 등장하는 Cross Entropy를 다루겠다. Cross-Entropy는 딥러닝에서 손실 함수로도 사용되고 KL, JSD, f-deivergence등에서도 많이 보이기 때문에 중요한 개념이다. 정보량과 Entropy의 개념이 확실히 이해되지 않는다면 이전글이나 다른 자료를 참고해서 공부한 후에 보는것을 추천한다!! Entropy Reminder 먼저 Entropy를 다시 떠올려 보자. $$ \sum_{x=1}^{N}-p(x) log p(x)$$ 분포 p에 대한 entropy다. (위 식에서는 밑의 값에 2가 들어왔지만 다른 숫자도 올 수 있다. 가령, $e$) $p(x) $ : x의 확률 $log_2 p_i$ : x의 정보량 여태까지 entro..