최근 딥 러닝을 공부해볼 좋은 기회가 생겼다. 현재는 파이썬도, 딥러닝도 거의 모르는 상태인데 차근차근 공부해보려고 한다. 이번 딥 러닝 공부의 목표는, 실제로 처음부터 구현은 하지 못하더라도 기존 모델 코드를 읽고 이해하고, 개선점을 찾아볼 수 있을 정도의 실력을 키우는 것으로 잡았다. 특히 이미지 쪽 딥 러닝 기술을 이용해 재미있는 웹 서비스를 만들어 보고 싶은 생각이 있다.
우선 읽어볼 첫 책은 <밑바닥부터 시작하는 딥러닝 - 파이썬으로 익히는 딥러닝 이론과 구현 (사이토 고키)>이다. 책을 선택한 특별한 이유가 있는 것은 아니고, 고등학교 후배랑 같이 공부하다가 딥 러닝 할 거라고 했더니 책 있다고 해서 빌려왔다ㅋㅋ 한번 싸악 읽어볼 생각이다. 2009 개정 교육과정부터 고등학교 과정에 행렬이 빠져서 안이하게도 나는 행렬을 공부해본 적이 없는데, 고3때 고급 수학을 수강했던 후배에게 고급 수학 I 교과서도 빌려왔다. 후배가 행렬 기본 개념도 가르쳐줬는데 일단은 EBS 2016 수능 수학 강의 보면서 더 공부해보기로..!
파이썬은 모른다고는 했지만, 교양 수업에서 한 번 사용해본 적은 있고 문법 자체가 어렵지는 않다는 이야기를 많이 들은 터라 딥 러닝 개념과 응용에 더 중점을 두기로 했다. 파이썬이 싫어서 공부 안 하려는 게 아니다.
공부는 우선 1. 행렬 개념 공부, 2. <밑바닥부터 시작하는 딥러닝> 완독, 3. 인터넷 강의 수강하면서 직접 코딩해보기 의 순서로 잡았다. 딥 러닝 분야는 처음이니 어떻게 시작해야 할 지 몰라서 약간은 추상적으로 짜 보았는데 점차 구체적으로 해 봐야지!
행렬
수나 식을 직사각형 모양으로 배열한 것을 행렬이라고 한다. 가로줄은 행, 세로줄은 열이고 배열된 각 수나 식을 그 행렬의 성분이라고 한다.
보통 행렬은 대문자 알파벳으로 표현하고,일반적으로 행렬 A의 i번째 행의 j번째 열의 성분은 aij로 나타낸다.
주 대각선의 모든 성분이 1, 나머지 성분이 0인 정사각형 모양의 행렬을 단위행렬이라고 한다. 보통 E로 표현한다.
행렬의 연산
행렬의 덧셈과 뺄셈은 같은 크기(행과 열의 개수가 같은 경우)여야 성립되고, 같은 위치의 성분끼리 덧셈 및 뺄셈을 한 결과로 정의된다.
행렬의 곱셈은 좀 특이한데, 행렬 A와 B를 곱할 경우 A의 열의 개수와 B의 행의 개수가 같아야 성립된다. 행렬 A의 크기가 m*k이고 행렬 B의 크기가 k*n이면, 두 행렬의 곱 AB의 크기는 m*n이 된다.
그러니까 A의 i행의 각 성분과 B의 j열의 각 성분을 순서대로 하나씩 곱해서 더하면 그게 새 행렬 AB의 (i, j) 성분이 되는 것이다.
아다마르 곱
A○B로 표현하는 행렬의 아다마르 곱은, 같은 크기의 행렬 두 개의 같은 위치의 성분을 각각 곱하는 연산이다. 덧셈, 뺄셈과 비슷하다.
이것저것 공부하고 싶은 것은 많은데 시간이 참 부족하다는 생각이 든다. 없는 시간이나마 쪼개어 최대한 많이 건드려봐야겠다. 특히 올해는 조금 여유가 있을 것 같아서 여러 목표들을 세워놓았는데, 그러다 보니 처음 1순위로(?) 계획했던 휴식은 못 취할 것 같다ㅋㅋ 목표들은 크게 1. 웹 계속 꾸준히 하면서 결과물 내기, 2. 알고리즘 공부, 3. 딥 러닝 입문, 4. 어학 공부 이렇게 4가지이다. 우선순위는 두지 않고 전부 균형 맞춰 실행할 생각이다. 여유 안녕..
'Deep Learning' 카테고리의 다른 글
[딥러닝] 파이토치 개발환경 구축 2. CUDA로 GPU 사용하기 (3) | 2021.03.01 |
---|---|
[딥러닝] 인공신경망(ANN), MNIST 데이터 셋 분류 (2) | 2021.02.26 |
[딥러닝] 파이토치 개발환경 구축 (8) | 2021.01.27 |
[딥러닝] 퍼셉트론이란 (0) | 2021.01.15 |
댓글