본문 바로가기

[Day6] Pytorch 3. PyTorch 프로젝트 구조 이해하기 : template, ngrok 초기 대화식 개발 과정 유리 ex)jupyter 배포 및 공유 notebook 공유 어려움, 재현 꼬임 프로젝트 template 실행 데이터 모델 설정 로깅 유틸리티 등.. 을 https://github.com/victoresque/pytorch-template GitHub - victoresque/pytorch-template: PyTorch deep learning projects made easy. PyTorch deep learning projects made easy. Contribute to victoresque/pytorch-template development by creating an account on GitHub. github.com 에서 가져오면 편하다 clone하거나 로컬에 저장하..
[Day6] Pytorch 2. Pytorch Basics : Tensor, data types, handling, operations, formula Pytorch numpy numpy 기반 autograd 자동미분 지원 function 다양한 형태의 함수와 모델 지원 Tensor 다차원 arrays를 표현하는 pytorch 클래스 python의 list = numpy 의 ndarray = pytorch 의 tensor = tensorflow의 tensor import numpy as np import torch arr=list(range(10)) print(arr) np_array=np.array(arr) print(f"type : {type(np_array)}, ndim : {np_array.ndim}, shape : {np_array.shape}") torch_tensor=torch.tensor(arr) print(f"type : {type(to..
[Day5] AI math 8. 베이즈 통계학 맛보기 베이즈 통계학 데이터가 추가될 때 정보 업데이트 하는 방법에 대한 이론 조건부 확률 $P(A \cap B)$ A와 B라는 두 사건이 있을 때 $B$가 일어난 상황에서 사건 A가 일어날 확률 $$P(A \cap B) = P(B)P(A|B)$$ 베이즈정리 조건부 확률을 이용해서 정보를 갱신하는 방법 $$P(B|A) =\frac{ P(A|B) }{P(A)} = P(B) \frac{P(A|B)}P{A} $$ 여기에서는 새로운 정보 A가 들어왔을 때 원래 사건이 일어날 확률 P(B|A)을 계산하는 것이다 사후확률 : Posterior probability 데이터를 관찰했을 때 hypothesis가 성립할 확률 데이터를 관찰한 이후에 측정한다. 사전확률 : Prior probability 사전에 데이터가 주어지지 ..
[Day4] AI math 7. 통계학 맛보기 : 모수, 확률분포, 정규분포,최대가능도 추정법, MLE, 로그가능도, 확률분포 거리, 쿨백라이블러 발산 통계적 모델링은 적절한 가정 위해서 확률분포를 추정하는 것이 목표이다 다양한 확률분포를 사용해서 모델링할 것이냐가 중요하다 일부의 데이터로 모든 데이터의 분포를 정확하게 알아낸다는 것은 불가능하므로 근사적으로 확률분포를 추정할 수 밖에 없다. 모수 Parameter 모수적 방법론 parametric 데이터가 특정 확률분포를 따른다고 선험적으로 (a priori) 가정한 후 그 분포를 결정하는 모수를 추정하는 방법 ex) 정규분포의 평균과 분산 비모수 방법론 nonparametric 특정 확률분포를 가정하지 않고 데이터에 따라 모델과 모수의 개수가 바뀌는 방법 모수가 없는 것이 아니라 모수가 무한히 많거나 데이터에 따라 모수가 바뀌는 것이다 두 방법론의 차이는 어떤 가정을 미리 부여를 하는지 아닌지에 따라..
[Day4] AI math 6. 확률론 맛보기 : 확률분포, 확률변수, 결합분포, 주변확률분포, 조건부 확률분포, 조건부 확률, 기대값, 몬테카를로 샘플링 기계학습과 딥러닝은 확률론을 기반으로 해서 이해하려면 확률론을 알아야 한다. 예를 들어, 학습시 필요한 loss fuction (손실함수)는 데이터공간을 통계적으로 유도하기 때문에 중요하다. 확률분포 데이터를 표현하는 초상화 확률분포를 한 번에 구하기는 불가능하다. 그래서 기계학습 모형으로 이 확률분포를 추론하게 된다. 추론하는 데이터 공간을 $\mathscr{X} \times \mathscr{Y}$ 로 표기한다. 확률변수 우리가 관측하는 실제 데이터는 확률변수로 표기한다. 확률변수 $(\textbf{x},y) $ 는 $\mathscr{X} \times \mathscr{Y}$의 원소이다 $$ (\textbf{x},y) \in \mathscr{X} \times \mathscr{Y}$$ 확률변수는 함수로 생..
[DAY4] AI math 5. 딥러닝 학습방법 이해하기 신경망 neural network =perceptron 선형모델은 단순한 데이터에서는 가능하지만 복잡한 문제에서는 성능이 부족하다. 복잡한 문제에 대응하기 위해서 신경망을 사용한다. 신경망은 비선형모델이다. 선형모델이 숨겨져 있고 선형모델과 비선형함수의 결합으로 이루어져 있다. 비선형모델은 밑에 설명할 활성함수이다. $X$ 데이터들로 이루어진 행렬 (n*d) 한 점으로 표현됨 $W$ 가중치 행렬(d*p) 데이터를 다른 데이터 공간으로 보내는 역할을 한다 $b$ y절편에 해당하는 행벡터 1 (1*p) 개를 n개의 행렬만큼 늘려놓은 행렬(n*p) 각 행들이 전부 같은 값을 같게 된다. $O$ 출력 (n*p) 원래 데이터는 d차원이었는데, 출력을 하게 되면서 p차원으로 바뀌게 된다 $$\textbf{O = X..
[DAY3] AI math 4. 경사하강법 -2 경사하강법으로 선형괴휘 계수 구하기 2022.01.19 - [부스트캠프 AI Tech 3기/이론 : U-stage] - [DAY3] AI math 2. 행렬이 뭐예요? [DAY3] AI math 2. 행렬이 뭐예요? 행렬 Matrix 여러 백터들을 원소로 가지는 2차원 배열 여러 점들 x=np.array([[1,2,3], [4,5,6]]) 2개의 행 벡터가 하나의 배열안에 담겨있다. numpy에서는 행이 기본 단위, 기준이 된다. 행 row 열 column $ x_{i.. chae52.tistory.com 의 맨 마지막을 보면 예측한 선형식의 값 $\hat{y}$과 원래 y값의 차이($\hat{y}-y$)를 최소화하는 것이 선형회귀의 방향이다. $$\hat{y}=X\beta$$ 이므로 선형회귀의 목적식은..
[DAY3] AI math 3. 경사하강법 -1 미분 Differentiation 변수의 움직임에 따른 함수값의 변화 측정법 기울기=변화율 변화율의 극한 = 미분 = 한 점에서의 접선의 기울기 import sympy as sym from sympy.abc import x fx=sym.poly(x**2 +2*x +3) # 다항식 sym.diff(fx,x) #x로 미분하라 >>>Poly(2𝑥+2,𝑥,𝑑𝑜𝑚𝑎𝑖𝑛=ℤ) 미분을 어디에 쓸까? 현재 주어진 점에서 어느 방향으로 움직여야 함수값이 증가 혹은 감소하는지 알 수 있다. 차원이 높아질 수록 어느 방향으로 가야 함수값이 커질지 작아질지 에측하기 어렵다. 어느 차원에서든 미분값이 양수든 음수든 상관없이 함수값을 증가시키고 싶으면 미분값을 더해준다 경사상승법 (gradient ascent) : 함수 최대화,..