[2021/01 W01] 1주일 회고...

SEH ONE HONG·2021년 1월 8일
0

2021년 01월 첫째주 SSAC X AIFFEL AI 과정 회고 (포기하지마)

주요 일정

일자요일오전오후
01/04(월)인공지능 개발자가 되기 위한 위대한 첫 걸음CS231n Lecture 02. Image Classification
01/05(화)인공지능과 가위바위보 하기인공지능과 가위바위보 하기
01/06(수)개발자를 위한 첫 번째 필수 교양Big O, 자료형
01/07(목)Iris의 세 가지 품종, 분류해볼 수 있겠어요?Iris의 세 가지 품종, 분류해볼 수 있겠어요?
01/08(금)파이썬으로 코딩 시작하기글쓰기

DAY 01 오전 : 인공지능 개발자가 되기 위한 첫 걸음

배웠던 것들

  • 학습 환경 구성 및 주요 명령어 학습
    • Ubuntu 18.04 : pwd, ls, mv, cp, rm, mkdir 등
    • Python 3.7 : 가상환경 구성
    • TensorFlow 2.2.0

마음 가짐 그리고, 느꼈던 것들

  • 초심!!! 차근 차근 복습 재정리!!!

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (2순위) Python 가상 환경
  • (2순위) pip 명령어, 작동방식 등

DAY 01 오후 : CS231n Lecture.02 Image Classification

배웠던 것들

  • 이미지 인식/분류가 어려운 이유
    • Intraclass Variation : 같은 고양이, 다른 생김새
    • Fine-Gradiented Categories : 같은 고양이, 다양한 종들
    • Background Clutter : 배경과 구분이 어려운 경우
    • Illumination Changes : 다양한 밝기 변화
    • Deformation : 다양한 자세, 변형 가능
    • Occlusion : 폐색
  • Image Classifier
  • Data-Driven Approach
  • Datasets : MNIST, CIFAR 10, CIFAR 100, ImageNet
  • Nearest Neighbor
  • L1 Distance
  • Nearest Neighbor - Decision Boundaries
  • kNN (Nearest Neighbor)
  • Hyperparameters
  • ConvNet

마음 가짐 그리고, 느꼈던 것들

  • 이해되는 내용도 있긴 했지만, 이해 못했던 내용이 더 많았던 듯...
  • 어렵다... 특히, 수학... 읔... 하지만, 이해하기 위해 노력하자

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (2순위) 재복습 필요

DAY 02 전일 : 인공지능과 가위바위보 하기

배웠던 것들

  • 머신러닝 딥러닝 기술 개발 과정
    • 데이터 준비 > 모델 설계 > 학습 > 테스트 (평가)
  • Sequential Model : keras.layers (Conv2D, MaxPool2D, MaxPooling2D, Flattern, Dense)
  • tensorflow.keras : 구글 (Google)에서 오픈소스로 제공하는 텐서플로우는 가장 널리 사용되고 있는 머신러닝 라이브러리 중 하나이며, tensorflow의 표준 API
  • matplotlib : 파이썬에서 제공하는 시각화 (Visualization) 패키지인 Matplotlib은 차트 (chart), 플롯 (plot) 등 다양한 형태로 데이터를 시각화할 수 있는 강력한 기능을 제공
  • Training Data Set, Test Data Set
  • 하이퍼 파리미터 (Hyper Parameters)

마음 가짐 그리고, 느꼈던 것들

  • 어렵다...

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (0순위) 프로젝트 마무리 정리 제출
  • (1순위) Sequential Model 복습, 세부 actiation type (relu, softmax), model.summary 내용 이해 등
  • (1순위) Sequential Model 학습 모델 : 수학적 모델? 어떤 것인지 실체가 궁금함...
  • (2순위) matplotlib
  • (3순위) keras.models

DAY 03 오전 : 개발자를 위한 첫 번째 필수 교양

배웠던 것들

  • git, github
  • jupyter notebook
  • markdown

마음 가짐 그리고, 느꼈던 것들

  • 초심!!! 복습!!! 다시 한 번 더 정리!!!

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (2순위) git 명령어에 익숙해지기

DAY 03 오후 : Big O, 자료형

대학교 때 배웠던 자료 구조와 Big O를 다시 보다니...

배웠던 것들

  • LeetCode 사이트 : 코딩 테스트 사이트
    1. Valid Palindrome
    1. Best Time to Buy and Sell Stock
    1. Median of Two Sorted Arrays

마음 가짐 그리고, 느꼈던 것들

  • 알고리즘에 대해 학습하긴 했지만... 파이썬 프로그래밍에 대해 다시 한 번 생각해 볼 수 있는 시간이였음

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (1순위) 121. Best Time to Buy and Sell Stock 알고리즘 개선
  • (1순위) 004. Median of Two Sorted Arrays 개발

DAY 04 전일 : Iris의 세 가지 품종, 분류해볼 수 있겠어요?

배웠던 것들

  • 머신러닝 딥러닝 기술 개발 과정
    • 데이터 준비 > 모델 설계 > 학습 > 테스트 (평가)
  • 머신러닝
    • 지도 학습 (Supervised Learning) : 정답이 있는 문제에 대해 학습
      • 분류 (Classification)
      • 회귀 (Regression)
    • 비지도 학습 (Unsupervised Learning) : 정답이 없는 문제를 학습
  • 머신러닝 모델 / 분류기 (Classfier)
    • Decision Tree
    • Random Forest
    • Support Vector Machine (SVM)
    • Stochastic Gradient Descent (SGD)
    • Logistic Regression
  • 오차 행렬 (Confusion Matrix) 및 성능 지표
    • Metrics : True Positive, False Positive, True Nagative, False Nagative
    • 성능 지표 : Precision, Negative Predictive Value, Sensitivity (True Positive Rate, Recall), Accuracy, Specificity
  • pandas : 파이썬에서 표 형태로 이루어진 2차원 배열 데이터를 다루는 데에 가장 많이 쓰이는 도구로, 표 데이터를 활용해서 데이터 분석을 하기도 하고, 또는 대형 데이터의 여러 통계량을 다루기에도 최적화된 라이브러리

마음 가짐 그리고, 느꼈던 것들

  • 어렵다... ㅠㅠ

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (0순위) 프로젝트 마무리 정리 제출
  • (1순위) 머신러닝 모델 및 분류기 이해
  • (1순위) 성능지표 이해

DAY 05 오전 : 파이썬으로 코딩 시작하기

배웠던 것들

  • 함수와 변수 : 함수 정의, 변수의 유효 범위, 함수 인자 전달, 함수 결과값 반환
  • 제어문 : if, while, for
  • 자료형 : int, float, bool, str, tuple, list, dict, NoneType

마음 가짐 그리고, 느꼈던 것들

  • 파이썬 문법을 공부하긴 했지만, (귀찮을 수 있지만...) 다시 한 번 더 초심으로 돌아가 다시 한 번 정독하고, 코드 하나 하나 타이핑해보면서 개념을 정립하는 시간을 갖자 라는 마음으로 학습

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (1순위) 함수 결과값 반환 부분에서 내가 예상한 결과랑 다르게 나왔는데... 이 부분은 다시 한 번 더 꼼꼼히 보고 알고 넘어가야 할 부분
def print_two(word1, word2):
    print(word1)
    print(word2)

def print_and_return(word1, word2, word3):
    print_two(word3, word2)
    return word1
  • (2순위) 파이썬 함수, API : 지난 번 정민채 퍼실님께서 강의하신 내용들, string 관련 함수 등

DAY 05 오후 : 글쓰기

배웠던 것들

  • markdown 사용법
  • LaTex, KaTex를 이용한 수식 표현

마음 가짐 그리고, 느꼈던 것들

  • markdown을 알고 있고, 쓰고 있긴 했으나, 다시 한 번 더 복습하고 정리한다는 생각으로 들었고, 복습하고 정리할 수 있는 시간을 갖게 되었다고 긍정적으로 생각
  • LaTex, KaTex 등은 잘 몰랐었는데, 나중에 좀 더 공부하면 좋겠다 라고 생각

추가적으로 공부하거나 더 공부해야 할 것들, 그리고 우선순위

  • (5순위) markdown, typora, LaTex, KaTex : KaTeX는 웹 브라우저에서 수학 표기법을 표시하는 브라우저 간 JavaScript 라이브러리

전체적인 소회

음... 일단 많은 것들을 하는 것 같다... 컴퓨터 공학 전공자 그리고 IT 경력 15년차가 보기에도 상당히 많은 주제, 기술적인 주제 뿐만 아니라 비기술적인 주제까지 모두 다루고 진행하고 있는데... 솔직히 잘 모르겠다... 솔직히 포기해야 하나, 아니면 계속 진행해야 하나? 라는 고민에 휩싸였던 한 주였던 거 같다...

본 과정을 지원하면서 목표했던 바는...

AI, Machine Learning, Deep Learning 등의 밑바탕 개념, 이론과 실제 활용 사례 등에 대해 좀 더 체계적으로 효과적으로 배우고, Tensorflow, Keras, PyTorch 등의 라이브러리를 활용해 실제 개발/적용할 수 있는 역량을 기르는 게 목표였었다.

혼자서 AI를 공부하다 보니... 아무래도 체계적 효과적인 학습이 안 되고 있었고, AI, Machine Learning, Deep Learning의 개념이나 실체, 효용 가치 등이 와 닿지 않았으며, 무엇보다도 AI의 밑바탕이라고 할 수 있는 수학적인 개념들과 실제 프로그래밍이나 적용 사례와의 연관성 측면에서 풀리지 않는 궁금증 또는 이해하기 힘든 부분들이 있어서 그런 부분에서 체계적 효과적으로 도움을 받고자 시작했다고 할까? (AI 기술이 실제 어디까지 왔고, 또한 어떻게 나아갈 지에 대한 비즈니스적인 Impact에 대한 부분들에 대한 Insight도 얻고 싶었다)

요새 인터넷이나 각종 매체, 신문, 방송에서 AI, Machine Learning, Deep Learning 등에 대해 수없이 많이 회자되고 있는데, 정작 그 필요성과 가치에 대해서는 정확하게 이해하지 못했고, 설명하기도 힘든 상황이였다. (엄밀히 말하자면, 막연하게 또는 Big Picture 상에서는 동의할 수 있었으나, 위에서 얘기했다시피, AI 기술이 실제 어디까지 왔고, 어떻게 적용되고 있으며, 또한 향후에 어떻게 나아갈 지에 대한 비즈니스적인 Impact에 대한 부분들에 대한 Insight도 얻고 싶은 마음이 컸었다. 창업 이후에 새로운 AI 기술들을 통해 어떻게 하면 좀 더 혁신적인 서비스를 설계하고 만들어나갈 수 있을 지, 또는 예전에는 감히 비즈니스적으로 고민하고 실행하기 힘들었었던 사업 아이템, 서비스들이 AI라는 기술을 통해 어떻게 실제 Enable 가능한지 등이 궁금했었다...)

잘은 모르겠지만... 지금은 그냥 "도움이 되겠지"라는 생각으로 버텨 내고 있는 게 현재 상황인 거 같다. 코로나로 인해 집합 교육이 아닌 비대면 교육이라는 점이기에 더더욱 힘든 "개인 또는 자기 자신과의 싸움" 아닌가 싶다... 만약 집합 교육이였다면 좀 더 활발하게 물어보고, 서로 서로 클러스터링 되는 효과도 있지 않았을까 싶다...

(굳이 대면하지 않더라도 대면 효과를 어느 정도 줄 수 있는 슬랙, 노션, 구글 미트 등 좋은 기술과 서비스들이 있긴 하지만... 역시 대면해서 페이스 투 페이스로 얘기하고 토론하는 게 학습 효과 측면에서는 제일 좋은 거 같다...) 집 또는 사무실에서 혼자서 슬랙, 노션, 구글 미트, LMS, 인터넷, 구글, 유튜브 등을 보면서 학습도 하고 궁금한 점은 질문도 하긴 하지만, 한계가 많고, 많이 힘들다;;;

금주 1주일 동안 진행했던 내용들의 효용가치에 대해 모르는 바는 아니지만, AI라는 새로운 기술과 개념을 배워야 하고, 더불어 그것들을 실현하고 서비스화할 수 있는 프로그래밍 언어(여기서는 파이썬)와 API 들을 배우는 것도 벅찬 상황에서... git & github, markdown, blog (글쓰기), 알고리즘 등을 함께 하는 게 맞는지는 커다란 의문이다...

1일 1커밋
1일 1글쓰기
markdown으로 예쁘게 꾸미기

등등 모두 다 좋은 말이고, 하면 좋은 게 사실이다.

더불어, 취업하려면 위에서 언급한 것들 모두 다 잘 하면 좋은 게 사실이다.

하지만... 욕심 아닐까? 라는 생각도 든다...

본질과 본 과정이 목표하는 바(AI, Machine Learning, Deep Learning 개발 역량 이라고 할까?)에 좀 더 집중하는 게 어떨까 생각한다... 예를 들면, Mandatory와 Optional로 나눠서 진행하는 게 맞지 않을까 생각한다. 지금은 모든 게 다 Mandatory로만 느껴지고, Mandatory라고 생각하지는 않지만 어쩔 수 없이 하고 있는 것들도 많은 게 사실... 그래서 너무 부담스럽고 힘들다;;;

해야 할 게 너무 많다... 너무 너무...

이렇게 하는 게 효율적이고 효과적인지는 고민해 볼 필요가 있지 않을까 생각한다. 개인적으로는 "선택과 집중"이라는 말을 좋아하고, 나 또한 멀티 태스킹 능력이 떨어지고, 나의 한계를 알고 있기에... 이것 저것 많이 한다고 좋은 건 아니라고 생각하기에...

커리큘럼이 좀 더 정리되었으면 하는 바람이다... 더불어 플립 스쿨, 자기 주도 학습, 질의 응답식 교육... 좋긴 하지만... 모르겠다...

학습하려는 사람이 공부할 의지를 가지고 선행 학습도 하고 복습도 하고, 모든 것들을 다 하면 좋겠지만, (막연하긴 하지만...) 어느 정도 적절한 강의, 수준에 맞는 전문성 있는 강의, 쉽게 이해할 수 있는 강의도 적절히 필요하지 않을까 생각한다... 좋은 컨텐츠와 환경을 제공했다고, 기다리는 방식보다는 때로는 다가서고 체크하는 것도 필요하지 않을까 생각한다...

그런 면에서 비전공자분들 대단하다는 생각이 든다. 더불어 존경스럽기까지...

하지만, 그럼에도 불구하고... 일단 시작했으니... 갈 데까지 가 보자... 그리고 견뎌 내자...

그리고, (취준생 비중이 높아서... 앞으로도 이렇게 진행될 가능성이 높을 거 같다는 생각이 들기에...) 그럼에도 불구하고... 원래 내가 목표했던 바와 내가 생각하기에 우선순위가 높은 것들에 좀 더 집중하고, 시간을 좀 더 배분해서 진행하는 게 맞을 거 같다...

profile
YOROSIKU & CHIC

0개의 댓글