18.12.01(주일)

성취 및 회고

  • 결혼 1주년이 되어 아내와 시간을 보냈다.
  • 모두를 위한 딥러닝(김성훈 교수님 강의)와 함께 케라스 창시자에게 배우는 딥러닝 책을 구입했다. 케라스도 결국 백엔드에서는 텐서플로우로 동작하고, 초심자가 내용을 배우기에는 케라스가 더 수월한 것 같아 학습을 병행하기로 했다.
  • 지난 주에는 특별한 일 없이 시간을 낭비했던 것 같다. TIL도 꾸준히 작성해야하는데 게으름으로 인해 정확히 작성하지 못했다. 하루도 미루지 말고, 잠자리에 들기 전에 TIL을 반드시 작성하고 자야겠다.
  • TIL 작성은 하루동안 내가 구체적으로 무엇을 했는지 알 수 있도록 도와주는 유익이 있다.

내일 계획

  • Keras Deep Learning Library 학습 환경 구축하기
  • 채용정보 확인하기

18.12.03(월)

성취

  • Keras 실습 환경 구축 완료(windows10, Nvidia Geforce 1050ti, pycharm, anaconda, Keras-GPU, Cuda 10, CuDNN)
  • 케라스 창시자에게 배우는 딥러닝 1장 딥러닝이란 무엇인가 학습(인공지능+머신러닝+딥러닝 개념, 머신러닝&딥러닝의 역사, 딥러닝의 특징 및 머신러닝 동향)
  • ETS Toeic Voca Day11 암기

회고

  • Keras 딥러닝 라이브러리 실습 환경을 구축했다. 간단한 학습 모델링 생성에는 GPU가 필요없지만 책에서는 가급적 GPU 환경에서 실습할 것을 권장하고 있기에 Desktop에 실습환경을 구축했다.
  • 현재 Macbook Pro에서 주로 코딩 학습을 하고 있는데 Macbook Pro는 기본적으로 Nvidia 그래픽 카드를 사용하지 않기 때문에 GPU 환경을 구축하기 다소 까다롭다. 또한, 2018년 12월 기준 Tensorflow, Keras 모두 Macbook 환경에서의 GPU 버전을 지원하지 않거나 외장 그래픽을 추가로 설치해야만 GPU 사용이 가능하기 때문에 GPU 학습 실습은 집에 있는 Desktop을 이용하고, 나머지 기본적인 Keras 실습은 Macbook Pro 환경에서 진행할 예정이다.
  • ETS Toeic Voca 학습을 다시 시작했다. RC 문제집을 풀어보니 문법 관련 문제보다 단어 선택 문제와 지문해석에 있어 단어 암기의 부족함을 느꼈기 때문이다.

내일 할 일

  • 케라스 창시자에게 배우는 딥러닝 2장 학습
  • ETS TOEIC Voca Day12 암기
  • ETS 공식문제집 RC Test3 Part5 문제 풀기

18.12.03(화)

성취

  • 케라스 창시자에게 배우는 딥러닝 2장 공부 진행 중(2.1~2.2까지 학습)
    • 학습 내용
      • Keras example 코드 실행, Training&Test Data Set, Layer, Loss(Cost) Function, Optimizer, 과대적합(Overfitting)
      • Tensor-0D/1D/2D/3D/nD(스칼라, 벡터, 행렬(Matrix), 고차원 텐서)
      • Tensor 속성 3가지: Rank, Shape, Data Type
      • 배치 데이터(Batch): 딥러닝 모델은 한 번에 데이터 셋을 처리하지 않음, 데이터를 작은 배치 크기로 나누어 학습 진행
      • 텐서의 사례: 벡터 데이터(samples, features) - 2D텐서 / 시계열 데이터 또는 시퀀스 데이터(samples, timesteps, features) - 3D텐서 / 이미지(samples, height, width, channels 또는 (samples, channels, height, width) - 4D텐서 / 영상: (samples, frames, height, width, channels) 또는 (samples, frames, channels, height, width) - 5D텐서)
  • ETS TOEIC Voca Day12 암기, Day11 복습
  • ETS 공식문제집 RC Test3 Part5 문제 풀이 완료

회고

  • 케라스 창시자에게 배우는 딥러닝 2장 내용부터는 실제 이론과 개념에 대한 내용이 설명되는데 쉽게 이해되지 않는 부분들이 많았다. 특히, 텐서 자료구조는 눈에 보이는 구조가 아니라 차원이 커질수록 다소 추상적인 자료구조여서 기존의 데이터 구조에서 보지 못했던 내용이라 용어나 개념이 생소하여 이해하기 쉽지 않았다. 관련 내용을 반복해서 읽어보며 개념을 이해하도록 노력해야겠다.
  • 목표점수를 얻을 때까지 토익 공부를 꾸준히 해야겠다. 단어 중심으로!

내일 할 일

  • 케라스 창시자에게 배우는 딥러닝 2장 공부(2.3~끝까지)
  • ETS Toeic Voca Day13 암기
  • ETS 공식문제집 RC Part6, 7 문제 풀기

18.12.04(수)

성취

  • 케라스 창시자에게 배우는 딥러닝 2장 학습 완료
    • 학습 내용
      • 텐서 연산, 브로드캐스팅(크기가 다른 두 텐서를 연산할 때 작은 텐서가 큰 텐서의 크기가 맞추어 조정되는 것)
      • 텐서 점곱(tensor product), Keras에서는 dot 연산자 사용
      • 텐서 크기 변환: 신경망에 Input으로 넣을 데이터를 전처리하는 것을 의미, 특정 크기에 맞게 텐서 데이터의 행과 열을 재배열 하는 것, reshape(), transpose()
      • 텐서의 기하학적 해석(벡터 연산)
      • 딥러닝의 기하학적 해석: 신경망은 텐서 연산의 연결로 구성된 것, 서로 다른 색상의 종이를 겹쳐서 뭉친 공 예시(뭉쳐진 종이 공을 조금씩 펼쳐서 색상이 다른 종이를 분류하는 것이 딥러닝 연산의 흐름)
      • 신경망의 핵심 경사하강법(Gradient Descent), 가장 작은 Cost 값을 갖도록 가중치(W:weight) 값을 찾는 알고리즘
      • 가장 작은 Cost 값을 갖는 W를 반복적으로 찾아나가는 과정이 딥러닝에서의 학습(훈련)을 의미
      • Example Code Review
  • ETS Toeic Voca Day12 복습
  • ETS 공식문제집 RC Part6 문제 풀이

회고

  • Keras 학습 중 텐서 점곱과 벡터 연산 관련 내용이 쉽게 이해되지 않았다. 고등학교 때 배운 행렬 연산과 벡터 연산에 관한 내용이 설명되어 있었는데 다소 이해하지 못한 내용들이 있었다. 그래서 수학의 정석, 기하와 벡터 책을 구입했다. 전부 공부할 시간은 없고 행렬과 벡터 중심으로 기초적인 연산 내용 부분을 참고해서 학습할 예정이다.
  • Cost Function과 가중치를 찾는 경사하강법에 대한 내용은 모두를 위한 딥러닝에서 김성훈 교수님 강의를 통해 한 번 학습한 적이 있어서 내용 자체를 이해하는데는 어려움이 없었다. 하지만, 역시 반복 학습을 통해 조금 더 깊이 이해할 필요가 있음을 느꼈다.

내일 할 일

  • 케라스 창시자에게 배우는 딥러닝 3장 공부
  • 토익 공부(단어, RC 문제집)
    • ETS Toeic Voca Day13 암기
    • ETS 공식문제집 RC Part7 문제 풀이

18.12.05(목)

성취

  • 토익 성적 발표 -> 목표점수 달성!
  • 케라스 창시자에게 배우는 딥러닝 3장 공부 중(3.1)
    • 학습 내용
      • 신경망 구조: Network(또는 Model) Layer, Input Data Set + Target Data, Loss(Cost) Function, Optimizer
      • Layer(층): 신경망에서 각 Layer 마다 처리하는 데이터 구조(텐서의 구조)와 방식이 다름
        • 2D텐서 - 밀집 연결 층(Densely Connected Layer) / 3D텐서 - 순환 층(Recurrent Layer) / 4D텐서 - 2D 합성곱 층(Convolution Layer)
      • 딥러닝 모델은 비순환 유향 그래프로 방향은 있으나 자기 자신으로 돌아오는 노드가 없는 그래프 형태, 다양한 네트워크 모델 구조가 존재
      • 손실함수(Loss Function), 옵티마이저(Optimizer): 학습 과정을 조절하는 핵심 코어!
      • 손실함수 값은 최소화 되어야 할 값이며, 옵티마이저는 손실 함수를 기반으로 네트워크의 가중치가 새롭게 업데이트 되어야할 방법에 대해 결정(경사하강법: Gradient Descent)

회고

  • 지난 11월 말에 응시했던 토익 점수가 발표됐다. 결과부터 말하면 목표했던 점수를 달성했다. 600점 중반이었던 점수를 700점 중반으로 끌어올렸다. 남들은 800-900점이 아니면 의미가 없다고 느낄 수도 있지만 내게 700점 중반이면 충분했다. 영어 점수가 필요해 공부하던 토익 공부는 이제 잠시 미뤄두려고 한다. 이후에는 영어로 된 기술 문서와 논문, 뉴스 기사를 읽으며 영어 실력을 갈고 닦을 계획이다. 그리고 전화 영어와 Opic 스피킹 시험 중심으로 영어 공부 목표를 새롭게 세우고 학습할 계획이다. 처음에는 700점도 어려워 보였는데 ‘공부하면 할 수 있구나’라는 것을 다시 한 번 느끼게 해주었다. 작은 성취감이 큰 위로가 된 하루였다.
  • 케라스 공부를 하면서 내용이 생각보다 쉽지 않아 어려움을 넘어 두려운 마음이 들었다. ‘이걸 내가 공부해서 어디다 써먹으려고 하는걸까?, 그냥 남들이 다 하니까 하는 것은 아닐까?, 수학도 잘 못하는데 인공지능 공부하는게 맞는가?, 취업이 어렵다고 너무 이것 저것 공부할 계획만 방대한 것은 아닐까?’ 여러모로 생각이 많아진다. 그럼에도 일단 시작했기에 내 자신을 믿고, 이 책만큼은 끝까지 완독해야겠다. 2018년이 모두 가기 전에…

내일 할 일

  • 케라스 창시자에게 배우는 딥러닝 3장 공부

18.12.06(금)

성취

  • 케라스 창시자에게 배우는 딥러닝 3장 공부 중(3.2-3.3)
  • 학습 내용
    • 케라스 소개
    • 딥러닝 실습 환경 셋팅 -> 인터넷 검색을 통해 셋팅을 했었는데 책 내용을 참고하여 다시 Desktop 셋팅

회고

  • 목표했던 영어 점수를 얻으니 바로 매너리즘에 빠졌다. 영어 공부 목표와 방향을 빨리 재설정하고 공부를 하자. 영어는 긴급하지는 않지만 중요한 요소이기 때문에 평생 공부해야 한다는 사실을 잊지 말자!
  • 영어 점수의 매너리즘이 다른 공부에도 영향을 미치는 듯 하다. 사실 30분이면 읽어버리고도 남을 내용(케라스 소개, 딥러닝 실습 환경 셋팅 내용)을 아주 천천히 질질 끌면서 읽었다. 내 안의 게으름이 다시 스멀스멀 기어 올라오는 것 같다. 내용을 빨리 빨리 읽어 나가면서 실습 중심으로 딥러닝의 전반적인 내용을 학습해야겠다.
  • 교보문고에서 미루는 습관을 이기는 작은 책(페트르 루드비크)라는 책을 한 권 구입했다. 공부하는 것 보다 중요한 것이 채용 정보를 알아보고 입사지원서를 꾸준히 써서 내는 것인데 반복된 취업 실패로 두려움과 무기력 때문에 입사지원을 계속 미루는 내 모습을 발견했다. 그래서 서점을 돌아보던 중 이 책을 구입하게 되었다. 이 책이 나를 완전히 바꿔줄거라 생각하지는 않지만 작은 팁이라도 얻어 삶을 다시 바꿔 나가야겠다.

내일 할 일

  • 집 대청소
  • 점심 손님 맞이 식사 준비
  • 독서
    • 미루는 습관을 이기는 작은 책(페트르 루드비크)

18.12.07(토)

성취 및 회고

  • 교회 주일학교 교사를 할 당시 고등학생이었던 제자들이 집을 방문했다. 아내와 점심식사를 정성껏 준비했고, 아이들과 맛있게 점심을 먹은 뒤 티타임을 가지며 나름의 송년회 분위기를 냈다.
  • TIL 작성 내용에서 주일은 제외하기로 했다. 교회와 가정에서 보내는 시간에 집중하고, 한 주 동안 부족했던 공부와 독서에 시간을 할애하기로 했다. 주일에 교회와 가정에 집중하기 위해 평일 시간을 허투루 쓰지 않도록 우선순위와 시간계획을 잘 세워야겠다.