1) 인공지능(AI) 기초 다지기

jhyunn·2022년 12월 30일
0

NAVER_BoostCourse

목록 보기
1/5
post-thumbnail

1) 인공지능(AI) 기초 다지기

첫 강의라 그런지 대체로 전공자라면 이해하기 어려운 내용은 아니었습니다.

Python의 내장 함수들, pandas, numpy, pytorch 등의 예제 코드와
경사하강법, 확률과 통계에 관한 내용들이 포함되어 있었네요.

개인적으로 적어두고 싶은 까먹기 쉽고 복습하고 싶은 내용만 작성하려고 합니다.

pytorch 코드는 따로 제공되지 않는 듯하고, 강의 코드도 잘리거나 정리가 제대로 되지 않는 부분이 있어 정리한 코드도 첨부합니다.
https://github.com/Sungjeonghyun/Pytorch_practice

Class 생성 시 생성자의 변수를 private 변수로 변경하려면 __를 추가한다.
ex) self.door -> self.__door

OOP의 개념 : 상속(Inheritance), 다형성(Polymorphism), 가시성(Visibility)

csv module의 file 입력을 제외한 4가지 attribute :
delimiter, lineterminator, quotechar, quoting

정규식 (import re)

  • \d : = [0-9], 숫자와 매치
    \D : 숫자가 아닌 것과 매치
    \s : 공백문자와 매치, \t, \n, \r, \f, \v와 같이 공백문자를 매치
    \S : 공백문자가 아닌 것과 매치
    \w : = [a-zA-Z0-9_], 문자+숫자와 매치
    \W : 문자+숫자가 아닌 것과 매치
  • Dot . : \n을 제외하고 모든 문자와 매치. ex) a.b는 'a+모든문자+b'를 의미 = "acb", "a0b"
    추가) a[.]b는 "a.b"를 의미한다. [.]는 "."만을 의미
  • 반복 * : ca*t = "ct", "caaaat", 0회 이상 반복되는 경우
    반복 + : ca+t = "cat", "caaaat", 1회 이상 반복되는 경우
    반복 {m,n} : ca{2,5}t = a가 2~5회 반복, ca{2}t = a가 2회 반복
    반복 ? : ? = {0, 1} = 0~1회 반복의 의미
  • | : or와 같은 의미, ex) a|b = a 또는 b
    ^ : 맨 처음에 등장, ex) ^abc
    $ : 맨 끝에 등장, ex) abc$

L1-norm : 벡터의 각 원소들의 합, Lasso 회귀
L2-norm : 벡터의 각 원소의 제곱의 합에 제곱근, Ridge 회귀

두 벡터 사이의 각도 구하기

(분모는 x와 y의 L2-norm 곱)

  • cos 0˚ = 1, cos 90˚ = 0

두 벡터의 내적 구하기
-> 내적 = <x, y>

Gradient Vector
각 항을 분리하여 편미분을 진행
ex) f(x, y, z) = 9x^2 + 5y^3 - 3z
-> (18x, 15y^2, -3)

신경망에서 활성함수의 역할은 비선형 근사를 위함

  • Softmax(분류), sigmoid, tanh, relu...

역전파(backpropagation) 알고리즘은 연쇄 법칙을 이용한다.

이산형 확률변수는 확률변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해서 모델링한다.

확률분포를 모를 때 기대값을 계산하기 위해 몬테카를로 샘플링 사용

torch.squeeze는 행렬의 차원을 하나 줄여준다.
unsqueeze는 dim 옵션을 통해 차원을 +1

torch.view는 reshape와 유사한 기능

mse = torch.mean((hypothesis - y_train) ** 2)

Overfitting & Underfitting

  • Overfitting 발생 시
    훈련 데이터 추가, 더 작은 모델 활용, Dropout, Early Stopping, Regulization 활용
  • Underfitting 발생 시
    학습을 더 오래 진행, 더 큰 모델 활용

Sigmoid
함수 값이 (0, 1) 사이이다.
미분이 가능하다.
매우 큰 값이 입력일 경우 함수 값은 1에 가까워지며, 매우 작은 값이면 0에 가까워진다.
중간 값은 1/2 을 가진다.

Softmax
함수에 각각 입력된 값은 0~1 사이 값으로 출력된다.
softmax 출력의 총합은 1이다.
softmax 함수를 적용해도 입력 값의 대소 관계는 변하지 않는다.
softmax를 이용해 이진분류 모델을 구성할 수 있다.

profile
https://github.com/Sungjeonghyun

0개의 댓글