2020.06.20(토)

  • Fast campus - Tensorflow로 배우는 딥러닝 입문 16기 오프라인 수업 참여
    • Fashion MNIST 실습을 진행했다.
    • 강사님께서 이미 작성하여 배포해주신 colab 코드를 그냥 실행해보는 정도여서 아쉬움이 있었지만 parameter 세팅, data load, dataset 생성, layer 구성, 학습, 결과 출력의 전체적인 과정을 경험할 수 있었다.
      • 실습 내용 복습을 통해 각 코드가 의미하는 바와 TF, Keras API에 대한 이해를 높여야겠다!
    • 이론수업은 사실 수식이 너무 많이 나와서 이해하기에 어려움이 많았다. Activation Function의 종류를 배웠고, 0~1 범위사이로 출력 값을 제한하여 classification, regression을 수행하는 것을 알 수 있었다.
      • Activation Function: Sigmoid, ReLu, Leaky ReLu, Maxout, Tanh 등
    • Overfitting을 방지하기 위한 방법에 대해 다양한 방법을 오늘은 조금 더 상세히 학습했다. 수식의 이해는 어려워 키워드와 개념 및 원리를 중심으로 이해하고자 노력했다.(복습이 많이 필요하다.)
      • Dropout(layer에서 랜덤하게 노드들을 선택하여 학습에서 제외시키므로써 Overfitting을 방지 -> 모델을 여러개 생성하는 Ensemble 효과를 낼 수 있음), 중요!: Test Set으로 평가할 때는 Dropout을 사용 X
      • Batch Norm, L1 Norm(절대값), L2 Norm(제곱)
      • Model Ensemble: 여러형태의 모델을 만들어서 각각 학습한 뒤, 이를 통합하여 최종 결과를 예측하는 방법으로 다양한 형태의 모델로 학습을 진행하기 때문에 Overfitting을 방지할 수 있음
    • Gradient Descent 알고리즘이 갖는 문제를 해결하기 위한 Optimizer에 대해 학습했다.(parameter 업데이트 보폭을 어떻게하면 가장 효율적으로 최적화하여 업데이트 할 수 있을까에 대한 방법)
      • 일반 GD는 너무 큰 스텝 또는 너무 작은 스텝으로 가중치가 업데이트되므로 발생하는 global minimum을 잘 찾지못하는 문제가 발생
      • 이를 해결하기 위한 다양한 GD 최적화 알고리즘이 연구되고 있음
      • GD 최적화 알고리즘의 종류: SGD, Momentum, AdaGrad, Adam 등
      • 잘 모르겠으면 GD Optimizer로 Adam(Adaptive Moment Estimation)사용
  • 패스트캠퍼스 바이트디그리 데이터사이언스 과정 7주차 강의
    • macOS 환경에 PostgreSQL, DBeaver 설치를 완료했고, dvdrental 샘플 데이터베이스를 임포트하여 실습환경을 재구축했다.(윈도우 환경과 macOS 환경을 번갈아가면서 사용해야 하는 상황이어서…)
    • 뒤늦게 7주차 강의를 듣고 있다. Join에 대한 간략한 내용을 학습하였고 내일 저녁까지 완강한 뒤 7주차 퀴즈를 제출할 계획이다.

2020.06.19(금)

  • 너울리라는 스타트업에서 면접을 보았다.
  • 데이터사이언티스트 직무였고, 주로 맡게될 업무는 AI기반 IDS 연구였으며 스타트업 특성상 한 가지 업무만 할 수 없기에 부수적으로 다양한 연구개발 업무가 주어질 것이라는 설명을 들었다.(AI기반 보안연구를 꼭 하고 싶다.)
  • 현직교수님이신 대표분과 3명의 초기 멤버분들과 면접을 진행했다.
  • 이력과 경력사항을 중심으로 질문해주셨고, 갑작스럽지만 코딩테스트가 있어서 문제풀이를 했다. 결코 어려운 문제는 아니었으나 예상에 없던 코딩테스트가 즉석에서 이루어져 다소 당황스러움에 머뭇거리면서 겨우 문제를 풀었다.(모두가 지켜보는 환경에서 코딩을 하다보니 더 떨었던 것 같다.)
  • 요컨대 전체적인 면접 분위기는 압박보다는 굉장히 편안한 분위기에서 면접이 진행됐고, 무엇보다도 기존 멤버들과 잘 어울리고 소통하면서 일할 수 있는 인재를 채용하고 있다는 느낌을 받았다.
  • 결과가 어떻게 될지 모르겠지만 구직 또는 이직과정에서 경험하기 어려운 기분좋은 면접 중 하나였다.
  • 면접 후 갑작스러운 기술테스트(코딩 또는 CSE 이론)에도 당황하지 않고 차분히 대응할 수 있도록 준비해야 함을 깨달았다. 향후에는 leetcode, 프로그래머스를 활용하여 코딩 테스트를 철저히 준비할 계획이다.

2020.06.16(화)-2020.06.18(목)

  • 패스트캠퍼스 바이트디그리 데이터사이언스 과정 6주차 수업을 완강했다.
  • SQL 기초 문법에 대해 학습하였고, 6주차 SQL 기초 요약은 jupyter notebook으로 작성하여 github에 업로드하였다.
  • 6주차 강의가 수업량이 가장 많았던 것 같다. 정규표현식, BeautifulSoup, SQL 기초까지 빠른 진도에 많은 양을 학습하다보니 학습내용을 100% 소화하지는 못한 것 같고, 복습의 필요성을 느꼈다.
  • 7주차 강의를 듣기 시작했다. SQL 중고급 문법에 대해 배우고 있으면 주로 Join 관련 내용을 배우고 실습하고 있다.

2020.06.14(주일)-2020.06.15(월)

  • 패스트캠퍼스 바이트디그리 데이터사이언스 과정 6주차 수업(PostgreSQL)을 진행 중이다. 화요일까지 수업을 마무리 짓고 7주차 수업을 시작할 예정이다.
  • 6주차 퀴즈 제출을 완료했다.(6주차 수업을 완강하지는 못했지만 웹 크롤러 관련 내용은 모두 수강하였고, SQL 기초 문법은 알고 있었기에 쉽게 풀 수 있었다.)
  • Mini-Project2로 15 Puzzle 문제를 풀었다. 수업에서 제공된 jupyter notebook 양식에서 함수의 기능을 일부 구현하는 문제였다. 퍼즐 생성, 셔플까지는 정상적으로 동작하였는데 퍼즐을 이동하고 완성하는 부분을 잘못 구현했는지 에러는 없었지만 결과가 정확히 출력되지 않았다.(퍼즐이 정렬되지 않음) 로직에 문제가 있는 것 같은데 제출시간이 다되어 어쩔 수 없이 제출할 수 밖에 없었다. 바이트디그리 과정의 장점인 강사님 피드백을 기다리면서 다시 코드를 살펴 보고, 퍼즐의 로직 흐름을 다시 한 번 자세히 살펴봐야겠다.