AI / DL/boostcourse7 [딥러닝 기초 다지기] 5. Generative Models (2) 보호되어 있는 글 입니다. 2022. 12. 13. [딥러닝 기초 다지기] 5. Generative Models (1) Generative Model Generative Model은 많은 데이터 사이의 본질을 파악하는데 아주 유망한 방식이다. Generative model을 학습하기 위해, 먼저 엄청난 양의 데이터(사진, 문장, 소리 등)를 모으고 이와 비슷한 데이터를 만들기 위해 모델을 학습시킨다. 이 접근법을 관통하는 직관(intuition)을 다룰 때 꼭 나오는 문장이 있다. What I cannot create I do not understand. - Richard Feynman 무슨 뜻일까? 우리가 Generative model로 사용하는 신경망(NN)은 우리가 훈련하는 데이터보다 현저히 적은 파라미터 수를 가져서, 모델은 데이터를 생성하기 위해 효율적으로 데이터의 본질을 찾아내고 내부화(internalize)한.. 2022. 12. 2. [딥러닝 기초 다지기] 4-2. Sequential Models - Transformer [주의!] 해당 강의는 매우 어려울 수 있습니다. Transformer(Attention is All You Need, NIPS, 2017) Transformer 구조는 기본적으로 Sequential 데이터를 다루는 방법론이다. Sequential한 데이터는 중간에 어떤 경로가 빠지거나, 순서가 뒤바뀌는(permutation) 일이 생기면 모델링하기 어렵다. 이런 일을 해결하기 위해 Transformer가 나타났다. Transformer is the first sequence transduction model based entirely on attention. RNN에서는 하나의 입력이 들어가고 다른 입력이 또 들어가고, 이 때 이전 Recurrent Neuron Network에서 가지고 있던 Cell .. 2022. 11. 2. [딥러닝 기초 다지기] 3-3. Computer Vision Applications Semantic Segmentation 어떤 이미지에 대해 픽셀마다 어디에 속하는지 분류하는 문제다. 예를 들어 자율 주행에서 내 앞에 있는 물체가 사람인지, 도로인지, 인도인지, 신호등인지 등에 대해 구분해야 하는 경우가 있다. 특히 센서를 활용하지 않고 이미지만을 갖고 다루는 문제에서는 Semantic Segmentation이 중요하다. Fully Convolutional Network Convolutional Feature Map을 원하는 차원 벡터로 가는 fully-connected layer로 만드는 흔한 CNN 과정이다. Fully Convolutional Network는 dense layer를 없애서 output을 Conv layer으로 바꾼다. 이 dense layer 없애는 과정을 Con.. 2022. 10. 25. [딥러닝 기초 다지기] 3-2. Modern CNN - 1x1 convolution의 중요성 완전 Modern이라고 하기엔 어폐가 있으니 주의하며 강의를 듣자. 네트워크를 깊게 쌓아가면서 Parameter를 줄여나가는 기술을 알아가보자. AlexNet AlexNet은 2012년에 개최된 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge) 대회의 우승을 차지한 CNN 구조이다. AlexNet이 잘 될 수 있었던 이유는 다음과 같다. Rectified Linear Unit(ReLU) activation : 활성 함수가 가져야 하는 큰 특징은 비선형(Non-Linear)이다. ReLU도 비선형 함수라고 볼 수 있다. 0보다 클 때에 기울기(slope)가 1이기 때문에 원하는 gradient가 사라지거나 레이어를 깊게 쌓았을 때 네트워크를 망칠 수 있.. 2022. 10. 24. [Github으로 따라하는 버전 관리] Git 협업 Branch 큰 개발 프로젝트를 진행한다 가정해보자. 여러 개발 팀 혹은 팀원으로 나뉘어 진행할 것이다. 예를 들어, 머신러닝 개발 프로젝트를 진행하는 팀에서는 데이터를 전처리하고 저장을 하는 팀, 모델을 개발하는 팀, 모델을 서빙하는 팀이 있을 수 있다. 각 팀 안에서는 버그를 수정하거나 새로운 기능을 개발해야 하는 일이 많을 것이다. 각 팀별로 버전을 관리할 필요성이 있다. 이럴 때, 각 팀에서는 개발 프로젝트의 소스코드를 바탕으로 개발을 해나갸야할 것이다. 이후 개발이 완성되면 프로젝트에 병합을 시켜 새로운 버전을 생성하여 다른 팀원들과 충돌나지 않으면서 프로젝트를 진행할 수 있다. 브랜치(branch)는 프로젝트를 바탕으로 독립적으로 개발을 할 수 있는 저장소(작업영역)이다. 저장소를 처음 만.. 2022. 10. 7. [Github으로 따라하는 버전 관리] Git 기초 Git 소프트웨어 개발을 할 때, 여러 사람이 참여하는 방식으로 개발의 효율을 올린다. 팀원들이 개발 도중에는 수정된 내역을 다른 팀원들이 바로 확인하고, 또 서비스에서는 배포된 소프트웨어의 버전 관리를 통해 개발의 효율성을 높일 수 있을 것이다. Git은 소프트웨어 버전관리 시스템(VCS, Version Control System)의 한 종류다. "프로그램의 소스코드를 관리하는 프로그램"인 것이다. Git server & Git client git은 여러가지 버전 관리 시스템 중에서도, 분산된 환경을 통해 소스코드를 관리한다. 분산 환경 시스템에는 중앙서버와 클라이언트가 존재하게 된다. 이 때 코드를 모아놓게 되는 원격 컴퓨터를 remote server, 그 코드들의 사본을 받아 개발하는 개인/지역.. 2022. 10. 7. 이전 1 다음