조이쓰 2022. 3. 23. 23:24

참여계기


AI 관련 학과로 진학을 하게 된 나는 AI에 관련된 강의를 찾고 있었다.

그러던중 패스트 캠퍼스의 자연어처리 강좌를 큰맘 먹고 끊었지만 진도는 전혀 나가지 않고 있는 불상사가 발생했다.

평소 강의에 집착하는(?) 편인 나는 미리 구매해놓은 강의도 안듣고 있었지만 또 강의를 물색하러 패스트캠퍼스를 들렀다.  그러던중!  패스트캠퍼스 챌린지 광고를 보게 되었다.

오잉? 50일동안 학습노트만 쓰면 수강료를 환급해준다고?! 나 무조건해야지!

챌린지 가능 강의 목록 중 평소 관심있던 인공지능 강의가 포함되어 있다는 것을 보고 있는돈을 다 털어 강의를 결제했다. 다시 생각해봐도 정말 좋은 취지와 또 혼자 공부하는 나를 위해 의지를 다질수 있는 챌린지였다. 

그렇게 나는 패캠 챌린지 신청을 하게 됐고, 당첨이 되어 챌린지에 도전하게 되었다.

 

오예쓰! 패캠 챌린지 참여자 선정됐당~!

 

참여하며 배우게 된 것과 과정


나는 패스트 캠퍼스 챌린지에 도전하며

한 번에 끝내는 딥러닝/인공지능 초격차 패키지 Online. 강의를 골라 듣게되었다. 

커리큘럼만 봐도 초보자를 위한 기초적인 개념과 또 중급, 고급 적인 내용이 잘 짜여있어서 마음에 들었다. 

현재 내게는 인공지능이라는 단어 만 들어도 어렵게 느껴졌기 때문에 인공지능의 기초적인 이론부터 또 전체적으로 개괄할 할 필요가 있었다. 그런 목표를 가지고 강의를 선택하고 들으며 너무 많은 배움과,또 지식을 쌓게 되었고 인공지능에 대해 마냥 어렵다는 편견과 인식이 조금씩 사라지게 되었다. 

아직 완강을 하지는 못했지만 내가 들었던 한 번에 끝내는 딥러닝/인공지능 초격차 패키지 Online. 장점

 

1. 기초적인 내용에 충실하다

2. 머신러닝/ 딥러닝에 필요한 연산의 수학적 지식을 갖출수 있게 된다. 

3. 인공지능의 개념을 전체적으로 개괄하며 탄탄한 기본기를 다질수 있다. 

4. 인공지능 과련 논문을 보며 구현 해볼수 있다. 

5. 강의 내용이 흥미롭게 구성되어있고 실습 위주로 잘 구성되어 있다. 

 

챌린지는 끝났지만 열심히 들어서 완강하여 인공지능 개발자가 되는것이 나의 목표이다!

 

각 주차 학습 내용


챌린지가 끝났고 최종 후기를 쓰며 지금까지 배웠던 내용의 목차와 간단한 내용을 다시 정리 해봤다.

새록새록 공부헀던 내용들이 떠올라서 도움이 됐다.

 

1주차(1월 24일~1월 31일)

  • 실습환경 설치
  • 주피터노트북 사용법과 다양한 단축기 익히기
  • Markdown언어에 대해 알아보기
  • 파이썬 문법 기초
  • 기본타입 변수, 비교형 연산자, 숫자형 타입, 문자열 표현 및 함수 
  • 컬렉션 타입 변수이해하기 (list, tuple, dictionary, set)
  • 튜플은 생성후 변경 불가능!
  • 셋은 중복 발생시 중복값 제거됨  
  • 조건문(if, else, elif), 반복문(for, while), 연습문제
  • 함수의 이해와 활용, 기본,키워드 파라미터
  • 변수의 사용영역 - 가까이 있는 변수가 더 우선순위 높음 
  • 람다식 : 익명함수, 굳이 선언하지 않고 일회성으로 만듦 
  • 파이썬 모듈, 모듈 임포트 , 클래스 개념 
  • 클래스 - 정의, 상속, 메서드정의
  • 메서드, 오버라이딩, 메서드 타입(instance, class, special)

 

2주차(2월 1일~2월 7일)

  • 정규표현식 : 특정한 패턴과 일치하는 문자열 찾기
  • re모듈 
  • 메서드 오버라이딩 : 부모클래스를 자식클래스에서 재정의 
  • super().메서드명 
  • seff : 출력하면 그 객체의 주소값이 나옴
  • special method : 함수를 재정의 하면 우리가 만든 커스텀한 타입도 기본타입처럼 사용가능 
  • ex) __add__, __sub__, __mul__, __getitem__, __len__
  • 딥러닝 프로세스 : 데이터셋 준비 - 뉴럴네트워크 설계 및 구현- 모델 학습 - 성능 평가 - 모델 배포 
  • 뉴럴네트워크 학습 : 손실율 계산 -> 그레디어트 계산, 파라미터 업데이트 
  • parametric Function  : 파라미터를 가진 함수 
  • 계층적인 텐서의 계산 : 0차원 텐서(스칼라) , 1차원 텐서(벡터) , 2차원 텐서(행렬), 3차원 텐서(행렬이 여러개)
  • Dataset : x 벡터는 각 원소를 한열로 나열한 벡터가 만들어짐 
  • 아티피션 뉴런, 어파인 뉴런, 활성화 함수 개념 

 

3주차(2월 8일~ 2월 14일)

  • 뉴런 벡터와 레이어 
  • Dense레이어 : 고밀도 계층, 뉴런마다 인풋들이 전부다 연결되어 있는 레이어
  • Dense레이어의 파라미터 : 입력되는 데이터개수에 따라 가중치와 바이어스 계산됨, 가중치는 행렬로, 바이어스는 벡터로 묶음 
  • 각레이어에서 연산 : 첫 번째 Dense Layer에서는 입력데이터에 대해 각 뉴런에 에서 연산이 일어남 ,두 번째 Dense Layer에서는 첫 번째 Dense Layer에서 나온 결과를 다음 dense Layer로 전달함 이후 output레이어로 까지 전달
  • Dense의 일반적인 표현 : dense레이어는 이전 출력값을 입력으로 받음 
  • Dense 레이어에서 미니배치 : 출력값의 가로행 : batch-wise , 출력값의 세로행 : Neuron-wise
  • Cascaded Dense Layers
  • 딥러닝 학습이란? loss계산을 통해 학습
  • 오디 : 확률의 한 표현 방법
  • 로짓 : 오디의 다른 표현
  • 시그모이드 : 로짓의 역함수 
  • 로짓으로 부터 확률 구하기 : 어파인 펑션에서 나온 affine value를 로짓으로 해석해서 시그모이드에 넣으면 확률값이됨 
  • 덴스레이어의 마지막에 하난의 뉴런을 깐것 
  • Sofemax Layer : 멀티클래스 분류를 구현하기 위해 사용됨 
  • 마지막 덴스레이어는 활성화 함수 없음 -> 로짓값 , 각 클래스의 로짓이 소프트맥스 함수에 들어오고, 각 클래스의 확률값이 출력됨
  • sigmoid는 마지막 레이어에 뉴런한개를 깔음 
  • softmax는 마지막 레이어에 class개수만큼의 뉴런을 깔고 소프트맥스 함수를 추가함 
  • 모델값 예측
  • Loss률 : 모델의 예측과 실제 y값의 차이를 어떻게 수치화 할지? 실제값과 예측값 사이의 차이를 수치화 -> loss
  • 모델은 loss율을 줄이도록 학습 ]
  • one-hot인코딩 : 하나만 hot인 벡터
  • MSE : J = (실제값 - 예측값)^2  -> 최소 제곱 에러 
  • Binary Cross Entropy : 이진분류를 할때 사용되는 Loss Funciton 
  • Categorical Cross Entropy :  다중 클래스 분류를 할때 사용되는 Loss Funciton 
  • 이미지 텐서 : 흑백은 2차원 메트릭스로 표현, 칼라는 3차원으로 표현 (R, G, B)
  • 콜릴레이션 연산 : 두 이미지를 코릴레이션 연산 하 면 실수 값이 나옴 
  • X : 입력데이터, F : 팔터 -> 가중치, b : 바이어스 
  • 컴볼루션 연산은 실제로 코릴레이션 연산, 두 신호 사이에 유사성 측정해주는 도구
  • window Extraction : 원도우 사이즈를 정해놓고 옆으로 한칸씩 이동 
  • Computations of Conv Layer
  • n-Channel input
  • Conv Layers
  • CNN(합성곱 신경망)

 

4주차(2월 15일~ 2월 21일)

  • 합성곱 연산 : 합성곱 계층에서 일어나는 연산, 이미지 처리에서 말하는 필터연산
  • 필터 : 커널이라고도 함 
  • 3차원 데이터의 합성곱 : 이미지는 세로, 가로, 채널을 고려한 3차원데이터 
  • 3차원 데이터X 필터 연산 ->  한 장의 특징맵 출력
  • 다수의 채널을 내보내려면 필터를 다수 사용
  • 여러 개의 필터를 사용한 합성곱 연산 : 3차원 데이터에  n개의 필터를 적용하면 n개의 출력맵이 생성
  • 배치처리 : 신경망은 입력 데이터를 한 덩어리로 묶어 배치로 처리, N회분 처리 한번에
  • 풀링계층 : 풀링은 세로, 가로 방향의 공간 줄이는 연산
  • 풀링계층 특징 : 학습해야 할 매개 변수가 없음, 채널 수가 변하지 않음
  • 최대/평균 Pooling : 윈도우를 뽑아 풀링연산 ->  1개의 스칼라값
  • Padding : 주변에 값을 채우는것
  • Strides : 윈도우를 뽑을때 특정 수만큼 이동, 필터 이동간격
  • Modules of Classifier
  • Feature Extractor : Convolutional Layers + Pooling Layer
  • Convolutional Neural Networks : Feature Extractor + Classifier + Loss Calculator
  • Backpropagation : 뉴럴 네트워크를 학습시키기 위해 사용하는 딥러닝 알고리즘
  • Chain Rule and Backpropagation : 벡터나 메트릭스, 고차원 텐서에 대해 미분하는 도구가
  • Backpropagation 진행 : 입력 값으로부터 각 레이어로 체인 룰이 적용
  • 체인 룰이 적용되는 방향은 반대방향 backward (역전파)
  • Tensor Parameters
  • Jacobian Matrices :  야콥비안은 스칼라 함수, 벡터 함수, 스칼라 인풋과 벡터 인풋에 대한 4가지의 미분법
  • 학습해야할 모듈과 파라미터 :  학습해야할 파라미터가 벡터나 행렬형태나 더 고차원의 텐서형태
  • 이차함수의 미분 : 함수값을 최소로 만드는 함수값의 방향과 양을 구하기 위해, 업데이트를 반복적으로 진행 

 

5주차(2월 22일~ 2월 28일)

  • Backpropagation : 스스로 편미분값을 가지고 있음
  • 미분 값이 필요한 이유는 로스율을 줄이기 위해 파라미터가 어떻게 가야 하는가 알기 위해
  • Jacobians : 입력이 메트릭스 형태로 있을 때 가중치 메트릭스 전체를 업데이트시킬 수 있는 미분이 필요
  • AI : 사람의 지능을 흉내
  • 딥러닝 :  Deep Neural Networks
  • 기계학습 : 데이터로 기계가 스스로 학습을 하는 것, input과 output을 같이 넣으면 기계가 프로그램을 직접 작성, 기계가 스스로 규칙과 특징을 찾아냄
  • History of AI : 역사가 오래됐음, 현재 황금기
  • Machine Learning의 종류 : 지도학습, 비지도학습, 강화학습
  • 학습, 테스트 단계 : 학습단계는 학습데이터로 학습, 테스트 데이터는 학습에 사용되지 않은 새로운 데이터로 테스트
  • 검증 데이터셋 : 학습 시 새로운 데이터로 성능 측정하는것(테스트 데이터 아니고, 학습데이터의 일부)
  • Data : 데이터의 질이 성능에 영향 끼침, 전처리 중요
  • Artifical Neural Network : 가중치(파라미터, 커널) 값을 기계가 스스로 찾아내도록 하는일
  • 뉴런 : 인간의 뇌에 있는 신경전달체
  • Perceptron : 선형 분류만 가능, 비선형 분류를 하려면 여러개의 퍼셉트론을 쌓아야함
  • 단일 레이어 : 히든 레이어가 없음
  • 멀티레이어 퍼셉트론 : 히든레이어가 여러개 
  • Neural Network의 예측 척도계산 -> loss function, cost function
  • Loss Function의 값이 계속 줄어들도록 가중치 값 수정-> 미분사용 

 

6주차(3월 1일~ 3월 7일)

  • 미분 : 한 점에서의 접선의 기울기
  • Gradient Descent : 사람이 눈을 가리고 산을 내려가는 상황
  • 학습율(Learning Rate) : 아주 조금씩 이동함
  • 마이너스 : Loss를 감소시키는 방향
  • BackPropagation : Loss 부터 거꾸로 한단계씩 미분(chain rule에 의해 곱함)
  • 넘파이 : 파이썬에서 산술 계산을 위한 패키지
  • 리스트와 비교
  • 배열 생성하기 : 배열 생성에 사용되는 함수와 메서드익히기
  • dtype
  • 배열의 인덱싱과 슬라이싱 : 인덱싱은 항상 랭크감소, 슬라이싱을 하면 차원이 유지
  • Boolean 인덱싱 : boolean값으로 이루어진 행렬, 블리언인덱스는 인덱스임
  • Transpose : 축변경
  • Numpy연산 : 넘파이끼리 산술연산 가능
  • Numpy SUM과 축 : 축 지정과 의미 알기
  • shape 변경 : reshape
  • Broadcast : 넘파이가 산술 연산 수행시 다른 모양의 배열로 작업할수 있게 도와줌, 잘 고려해서 연산해야함
  • Matplotlib : 파이썬 시각화 라이브러리
  • figure 와 subplot
  • plot의 종류와 사용법
  • Image data visualization

 

7주차(3월 8일~ 3월 14일)

  • Tensorflow/Keras : 구글에서 만든 머신러닝 모델을 개발하고 학습시키는 핵심 오픈 소스 라이브러리
  • MNIST dataset : 손글씨 분류를 위한 데이터 셋 실습
  • Tensor :  tensorflow의 기본 데이터 타입
  • Variable : 변하는 텐서, 학습시 업데이트 되는 가중치나 바이어스 저장함
  • 텐서의 인덱싱과 슬라이싱 : 넘파이와 동일함
  • Tensor연산 : 텐서끼리 연산가능
  • Dataset : tf.data.Dataset
  • Sequential 모델
  • 기계학습으로 문제를 해결하는 순서 
  • 경험적 위험도와 ML의 일반화
  • 모델의 수용량
  • 편향 분산 트레이드오프
  • bais-variance 트레이드오프
  • 피드포워드 네트워크 : 정방향 정보 전달 
  • 히든레이어 : 히든레이어 수가 많을수록 딥러닝 
  • 활성화 함수 : 시그모이드, tanh (기울기 손실 문제), ReLU를 많이씀 

 

3주차 - affine function 강의 필기
4-5주차 - backpropagaton 필기
6주차 - matplot 실습

 

7주차 - Sequential API, functional API, Model Class Subclassing

패캠 챌린지 장점 


장점

  • 많은 강의가 패스트캠퍼스 챌린지에 포함되어 있다.  
  • 강의 노트 쓰는것이 양이 많거나, 어렵지 않다 
  • 도전기간이 길지 않다. 
  • 작심삼일도 의지를 가지고 할 수 있다. 

단점 

  • 딱히 없었다.

패캠 챌린지 참여 후기


50일이라는 기간은 짧으면 짧고, 길면 긴 시간이였다.

매번 작심1일로 모든 계획을 끝내버리던 나에게는 반신반의한 도전이었다. 

챌린지 초기에는 조금 귀찮기도했지만 매일 데일리 미션을 의식하며 도전에 참여했던거 같다.

날짜가 점점 지나고 중간, 끝자락에 왔을때는 올려놓은 게시물을 보고 뿌듯 했다. 

그리고 이전 게시물을 찾아보며 공부하고 있었다. 더 깨끗이 정리할걸 이라는 후회가 들기도했다ㅋㅋ 

평소 나의 포토폴리오를 위해 블로그나 깃허브 관리를 하라는 조언은 많이 들었지만 전혀 하고 있지 못했는데

이번기회에 블로그 관리가 엄청어려운게 아니라는것과, 또 블로그 관리의 재미를 느꼈다. 

챌린지를 통해 얻은 강의를 듣고 정리하는 습관을 잘 이어가길 바라본다.

담에 또 패캠 챌린지하면 또 참여해야지~! >_<

뿌듯뿌듯!

 

암튼! 패캠 챌린지 끝! 

 

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

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