2021.10.03 일요일 28일차

 

3-5-2 for Several Samples - Backpropagation with NumPy 2
3-5-3 for Several Samples - Implementation

이제 챕터 3이 얼마나 남지 않았다! 3강이 남았다. 환급반 챌린지는 이틀 남았으니 챌린지동안 챕터 3은 끝낼 수 있겠다.

오늘의 강의는 지난 시간에 이어 여러 개의 샘플에 대한 BackPropagation과 코드로 구현하는 것에 대해서 배웠다.

오늘은 어제(이전 강의에서) 자세히 배우지 못한 BackPropagation의 수식이 전개되는 과정을 자세히 배웠다. 

사실 앞에 것들을 배우면서 까먹은 부분도 많고, 이해를 아직 다 못 한 부분이 많아서 어떤 부분이 수식 전개에서 어떻게 드러나는지는 잘 파악하지 못했다. 

그렇지만 다시 들을 생각으로 겉핥기다 생각하고 열심히 들었다.

수식전개로 어디서 backpropagation이 진행되고, backward는 어떻게 되고 forward는 어떻게 되고 그런 것들을 중심으로 크게크게 보며 들었다.

 

그리고 Implementation. 구현 부분으로 넘어왔다.

앞에 이론적인 부분도 크게크게만 들어서 정확히 어떻게 진행되는 것인지는 잘 이해하지 못했지만 여기에서도 코드가 어떻게 쓰이고 그런지를 알아보기 위해 열심히 들었다.

내가 이해를 다 못해서 그런건지는 잘 모르겠지만, 이론 부분의 설명과 크게 다를 것은 없었고, 코드로 구현을 하니 결과를 눈으로 확인할 수 있다는 점이 달랐다.

loss나 θ의 변화를 그래프나 값으로 확인해볼 수 있어서 이해가 조금 더 쉬웠다는 점이 달랐다.

 

이번 환급반 챌린지가 끝나면 챕터 3은 다시 복습해야할 것 같다. 일단 챕터3을 다 들어야지..

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

2021.10.02 토요일 27일차

 

3-5-1 for Several Samples - Backpropagation with NumPy 1

 

이번 강의는 여러 개의 샘플에 대한 백프로파이게이션을 어떻게 하는지에 대한 강의였다.

백프로파이게이션이란, 역전파라고도 하고 Back Propagation 이라는 뜻이다. 한자로 역전파라고 해도 이해가 잘 되지만, 보통 backprop 이라고 줄여서 많이 쓰이니, 앞으로는 backprop이라고 표기하도록하겠다.

앞의 많은 강의가 그랬지만, 이번 강의도 1, 2로 나뉘어져있는 강의이다.  

지금까지 배웠던 학습과정에서 수식이 전개되는 과정을 다시 한 번 말씀해주시면서, backprop이 어떻게 진행되는지를 알려주셨다. 해당 수식들의 전개 과정에서 직접 전개된 과정의 수식을 알려주셨는데, 그 수식이 어떻게 나왔는가를 하나하나 계산해주시지는 않았지만, 파이썬으로 구현해 print 문을 통해 확인해보면 바로 이해가 될 것이라고 말씀해주셨다.

(내가 파이썬 구현 코드로 이 수식의 전개 과정을 직접 확인해볼지 어쩔지는 잘 모르겠지만.. )

 

아무래도 이 학습 과정이 수학으로 이루어지다보니 구현할 때 수식을 계산해야할 필요가 있다. 이 수식을 계산할 때 파이썬에서는 numpy라는 패키지를 사용한다. 강사님께서 감사하게도 우리가 넘파이를 까먹었을 까봐 넘파이의 덧셈,뺄셈같은 아주 기초적인 연산부터 다시 Review를 통해 정리해주셨다.

 

다음 2강에서 다 배우면 그래도 딥러닝의 전반을 알게될 것 같다.

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

 

2021.10.01 금요일 26일차

 

3-4-3 for Several Samples - Vectorization 1
3-4-4 for Several Samples - Vectorization 2

오늘은 강의를 2개나 들었다! 지금까지는 이렇게 1, 2 나뉘어져 있는 강의를 그냥 한 개만 듣고 넘겼지만 오늘은 연구실에 와서 공부해서 그런지 집중이 좀 잘되는 것 같아서 2까지 다 들었다 ㅎㅎ

그리고 1, 2가 나뉘어진 강의는 다음 시간에 좀 복습이 필요해서 그냥 집중 잘 될 때 다 몰아서 들어버리자하는 마음도 있었다.

 

저번 시간에도 여러 개의 샘플에 대한 학습 방법을 배웠는데, 저번 시간까지는 2개의 샘플에 대한 학습 방법이랄까. 되게 간단하게 배웠었다. 이번 강의에서는 정말 여러개 n개까지 확장해서 학습하는 방법을 배웠다. 학습을 하는데 세타도 최적화 시키고, loss, cost, gradient 등을 각각 구하는 방법이 모두 다른데 그것들 하나하나 설명해주셨다.

데이터가 n개 라는 것은 scalar가 아닌 vector로 계산하면, 여러 개의 스칼라 값을 하나의 벡터로 만든다고 생각하면된다. 즉, 각각의 스칼라값을 연산하는 것을 하나의 벡터 연산으로 생각하면 된다는 것이다.

데이터 n개에 대한 학습을 설명해주시면서 지난시간 컴퓨터의 효율성을 배울 때 말씀해주셨던 미니배치와 배치 사이즈에 대해서도 또 설명을 해주셨다. 미니배치를 적용한다고 해서 연산이 달라지는 것은 아니고, n의 크기가 미니배치의 사이즈가 되는 것이라고 설명해주셨다.

오늘도 유익했던 딥러닝 수학 강의 끝!

오늘은 이론과제가 있어서 조금 힘들다..

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

2021. 09. 30 목요일 25일차

 

3-4-2 for Several Samples - Theory

오늘의 강의는 저번 시간에 이어 여러 개의 학습에 대해 배웠다. for Several Samples - theory 라는 강의 제목에서도 알 수 있듯이 여러 개의 샘플을 학습하는 방법의 이론에 대해서 배웠다. 이번 강의에 수식이 많이나오지만 그래도 지금까지 들은 강의가 있어서 맷집(?) 면역(?)이 생긴건지 그렇게 어려워보이지는 않았다. 

이번 수업의 내용은 모델의 loss와 cost를 구하는데, 여러 개의 샘플에 대해 구하는 것을 직접 하나하나 알려주시는 수업이었다. 수업자료 준비도 힘드셨을텐데.. 수식 입력이 진짜 귀찮기도 하고 시간이 오래 걸리는 작업인데 이 많은 수식을 이렇게 다 하나하나 유도해주셔서 정말 감사하게 들었다. 중복되는 내용이 많긴했지만, 여러 개라고 하니 또 어렵게 보이는 부분이 있기도 했다. 오늘의 수업도 100% 이해한 것은 아니지만 한 67%랄까.. 애매하게 이해했지만 그래도 어디가서 유도과정을 한 번 해봤다고는 할 수 있을 정도인 것 같다.

강의 마지막 즈음에 강사님께서 대중교통으로 이동하는 시간에 다시 한 번 생각해보며 득도할 때까지 한 번 생각을 해보라고 하셨는데, 이 수식을 기억하면서 가는 것도 대단한데 머릿 속에 섬광이 번뜩일 때가 있다는 것도 신기하다..

오늘 랩미팅에서 교수님도 심심할 때 보면 좋을 것 같다고 수식 유도 과정 유튜브 영상 링크를 주셨는데 정말 천재들의 세계란.. 너무 넘사벽인 것 같다.

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

2021. 09. 29 수요일 24일차

 

3-4-1- for Several Samples - Computational Efficiency and Mini-batch

 

오늘의 강의는 미니배치는 무엇이고, 미니배치를 왜 사용하는지에 대해서 배웠다.

제목을 살펴보면, 여러 개의 샘플들을 학습하는 방법에 대해서 다루고, 컴퓨터의 효율성과 미니배치에 대해 배운다는 것을 알 수 있다.

여러 개의 샘플을 학습하는 방법에 대한 수식이나 이론적인 부분들은 다음 수업에서 배운다. 이번시간에는 미니배치에 대해서만 배웠다.

딥러닝은 수학적인 연산을 컴퓨터로 하게된다. 일반적인 연산이라면 컴퓨터 연산량에 과부하가 올 정도는 아니지만, 딥러닝을 할 때는 수 많은 파라미터와 변수를 사용하게 된다. 그리고 연산된 값을 여러 개의 유닛에 보내고, 각 유닛마다 엄청난 연산을 하므로 그냥 컴퓨터를 사용하게 되면 엄청난 과부하가 온다.

그래서 나온 것이 병렬(Parallel) 학습이다. 어려운 개념은 아니고, 말 그대로 병렬적으로 학습하는 것이다.

100개의 데이터를 학습해야한다면 10개의 데이터를 컴퓨터 1이 하고, 그 다음 10개의 데이터를 컴퓨터 2가 하는 식으로 총 10대의 컴퓨터가 나누어 학습한다고 보면 된다. 그리고 이렇게 컴퓨터(CPU)들을 합쳐놓은 것이 GPU이다.

이렇게 딥러닝에서 GPU를 사용하는 이유를 배웠다.

그리고 이렇게 나누는 것이 mini-batch라는 것을 배웠다.

batch는 데이터 집합이라고 생각하면 되고, mini-batch는 그 배치를 조금씩 묶어 나눈 것이라고 보면 된다.

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

2021. 09. 28 화요일 23일차

 

3-3-2 for One Sample - Analysis

오늘의 수업은 지난시간 수업과 완전히 이어진 수업이라고 생각하면 될 것 같다.

제목에서도 알 수 있다시피 Analysis 해보는 수업이고, 이 수업 또한 코드와 이론적인 부분을 설명해주신다.

정말 감사했던게 지난 시간 리뷰를 앞에 잠깐 해주신다.

분명 어제 들었는데도 잘 기억이 안 나는 신기한 현상 때문에 이 리뷰시간이 없었더라면 오늘 수업은 이해하기 힘들었을 것 같다. 나는 챌린지를 하고 있어서 매일매일 하고 있어 사실 없어도 되는 부분이었지만, 만약 시간이 없어 일주일에 한 번이나 띄엄띄엄 듣는 사람에게는 이 리뷰시간이 정말 필요할 것 같다.

 

사진에 있는 강의자료 부분은 learning rate가 크면 발산할 위험이 높고, 작으면 너무 느리지만 최적화하는데 좋다고 했는데 그게 진짜 학습에서 어떤 그래프를 그리는지 보여주는 부분이다. 이렇게 디테일하게 확인시켜주시고, 실습해보고하는 강의는 처음이라 너무 좋으면서도 강의를 열심히 들으며 필기를 했다. 

뒤에는 θ(세타)의 initialization에 대한 부분도 나온다. 간단히 말하자면 어떤 값으로 세타를 시작해야 최적의 세타로 수렴하기가 좋을까 에 대한 것인데 결론은 그냥 랜덤 초기화를 시켜도 결과적으로 최적의 세타로 수렴할 수 있다.

다른 수업에서는 배울 수 없었던 부분을 이렇게 가르쳐주시고, 강의 중간중간 강사님도 공부하면서 어려웠던 부분이었고, 이런 부분을 어느 수업에서도 가르쳐주지 않았기 때문에 이 강의를 만드셨다는 게 느껴졌다.

딥러닝을 전공하는 대학원생 입장에서는 정말 감사한 수업이다.

 

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

2021. 09. 27 월요일 22일차

 

3-3-1 for One Sample - Implementation

 

오늘의 강의는 SVLR sample에 대한 코드 implementation(구현)에 대한 강의였다.

SVLR은 Single-Variate Linear Regression without Bias Term

즉, bias term이 있는 하나의 변수에 대한 선형회귀이다.

쉽게 볼 수 있는 y = ax + b 꼴의 모델에 대한 샘플 구현 코드에 대한 강의였다.

오늘 다른 koBERT 구현하다가 loss랑 cost에 지쳐있었는데 선형회귀 식을 보자마자 지쳐버렸다.

그런데..! 다름 아닌 구현을 말씀해주셔서 내가 지금 고치고 있던 코드와 겹쳐보이면서 역시 강의 듣길 잘했다 하는 생각을 또 했다.

어제 딥러닝 모델이 어떻게 학습을 하는지를 배웠다면, 오늘은 딥러닝 모델이 학습하는 과정을 코드로 구현한 것이다.

사실 이런 부분은 잘 안 해주시는 강의가 많았다. (무료강의여서 그런가..)

이론을 설명해주시고 이 부분은 과제로 내드리겠습니다. 라던가 이론만 수업하는 강의였기 때문에 코드를 다루지 않는다던가... 이론을 알려주시고, 어디선가 가져온 코드를 해주셔서 본인이 잘 이해를 못한다던가, 모르는 부분이 있다던가... 했었다.

어쨌든 이론과 구현의 괴리가 있던 부분이었는데, 이론을 배우고, 그 이론을 가르쳐주신 분이 코드 구현을 하신 뒤에 코드를 하나하나 다 알려주셔서 정말 강의 질이 다르다는 생각을 했다.

 

오늘도 어렵지만 유익했던 딥러닝 공부 끝!

 

▼패캠 강의 리스트▼

https://bit.ly/37BpXiC

 

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*


#패스트캠퍼스, #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수학적으로_접근하는_딥러닝_올인원_패키지_Online #대학원생공부 #인공지능독학 #머신러닝 #딥러닝

 

LaTeX 란?

올해 연구방법론에 대한 수업을 들으면서 과제로 연구계획서를 작성하게 되었다.

그래서 연구계획서를 찾다가 지원하고자하는 학회의 연구계획서 샘플이 LaTex 로 되어있어 LaTex에 대해 공부하게 되어 포스팅을 한다.

 

LaTeX는 레이텍스 라고 읽는다. 

LaTeX를 논문 작성 시에 쓰는 이유는 수식 입력이 필요한 논문에서 쉽게 작성할 수 있기 때문이라고 한다.

 

LateX 사용법

https://www.overleaf.com/

 

Overleaf, Online LaTeX Editor

An online LaTeX editor that’s easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more.

www.overleaf.com

먼저, 위의 LaTeX 에디터 사용을 위해 위 홈페이지에 접속한다.

로그인화면

처음에 이렇게 로그인을 하라는 창이 나온다.

(논문 에디터라서 IEEE로 로그인도 가능하다. 신기하다.)

회원가입화면

일단 처음이라 회원가입부터 진행해준다.

회원가입 완료

구글로 연동해주니 1초만에 가입이 완료되었다.

초록색의 Create First Project 버튼을 클릭해준다.

Create First Project

여러 가지 형식의 프로젝트를 시작할 수 있도록 목록이 나왔다.

나는 학회에서 다운받은 양식을 고쳐서 써야해서 Upload Project를 클릭해주었다.

LaTeX Editor

열어주니 이렇게 떴다. 오른쪽에는 컴파일된 후 pdf형식의 논문이 나오는 것 같다. 

왼쪽은 너무 빨리 스크린샷을 찍어서 아직 컴파일링 중인 것을 볼 수 있다. 

오른쪽을 보면 pdf에서 확인한 것과 같은 모양의 파일이 나온다.

 

몇 가지 명령어에 빨간색 네모 박스를 쳐보았다.

이렇게 명령어를 치고 그 뒷 부분에 내용을 치면 명령어에 맞게 내용이 구성된다.

예를 들어 \section 이라는 명령어를 입력하면 새로운 섹션이 나뉘게 된다.

 

새로운 명령어를 치려면 \을 입력하면 이렇게 명령어 목록이 떠서 영어 위주로 검색해서 명령어를 칠 수 있다.

 

  • section (I. 서론, II. 관련 연구 등 새로운 섹션을 만듦)
  • begin (새로운 섹션의 시작을 알리고 내용을 채워넣는 것을 의미)
  • end (섹션이 끝남을 의미)
  • item (bullet point의 글을 쓸 수 있음)

위 4개의 명령어를 자주 쓸 것 같다.

앞으로 더 알게 되는 명령어가 있다면 조금씩 더 정리해놔야겠다.


Reference

안경잡이개발자 https://ndb796.tistory.com/342

 

 

+ Recent posts