목록AI (100)
꺼내먹는지식 준

Pytorch의 강점 1) Numpy 2) AutoGrad 3) Deep Learning을 지원하는 다양한 함수와 모델 Tensor 다차원 Arrays를 표현하는 Pytorch 클래스 사실상 numpy의 ndarray와 동일 1) Tensor를 생성하는 함수도 거의 동일 import numpy as np n_array = np.arange(10).reshape(2,5) import torch t_array = torch.FloatTensor(n_array) 결과 tensor[[0., 1., 2., 3., 4.] [5., 6., 7., 8., 9.]] shape(2,5) data to tensor , ndarray to tensor data = [[3,5],[10,5]] x_data = torch.tens..

립러닝 프레임 워크는 양분되어있다. Pytorch Tensorflow :두개 프레임워크의 가장 큰 차이는 컴퓨태이셔널 그래프 표현 방식이다. Computational Graph 연산 과정을 그래프로 표현 Pytorch는 실행시점에서 그래프를 그리는 반면, Tensorflow는 static 하게 그래프를 그린 후에, 실행 시점에서 backward propagation이 일어난다. Pytorch Numpy + AutoGrad + Function(다양한 형태의 DL 지원 함수와 모델)

비선형 모델 신경망 Fully conneceted layer 화살표: 가중치(W) 선형 모델에 해결하고자 하는 문제에 따라 다른 비선형 활성화 함수가 적용된다. 분류(주어진 데이터가 특정 클래스에 속하는지) 문제를 해결할 경우 softmax 가 필요하다. softmax 소프트맥수 함수는 모델의 출력을 확률로 해석할 수 있게 변환해주는 연산 softmax(o)=softmax(Wx + b) 출력값을 통과시키면 확률벡터를 얻을 수 있다. 특정 클래스에 속할 확률을 파악하고, 분류문제를 풀 수 있다. 추론시에는 최대값만 1로 출력하는 one-hot vector 를 사용한다. ex)[0.3, 0.1, 0.1, 0.1, 0.1, 0.2] ⇒ [1, 0, ..

MLP는 각 뉴런들이 선형모델과 활성함수로 모두 연결된 구조였다. Fully conneceted layer hi=σP∑j=iWi,jxj Fully connected layer는 다층 신경망의 경우 각 성분의 가중치 행들이 i 번째 위치마다 필요했다. 또한 hi 를 계산할 때 Wi가 필요했고, i 가 바뀌게 되면 가중치 행렬의 행도 바뀌어서 구조가 커지게되고, 실제로 학습을 시켜야하는 parameter의 숫자도 굉장히 많이 커졌다. Convolution은 kernel이라는 고정된 가중치 행렬을 사용하고 고정된 kernel을 입력 벡터 상에서 움직여가면서 선형 모델과 합성함수가 적용되는 구조이다. kernel의 등장 배경 실험을 통..

P(A∩B)=P(B)P(A|B) P(B|A)=P(A∩B)P(A)=P(B)P(A|B)P(A) ex) Covid 발병률이 10%로 알려져 있다. Covid에 실제 걸렸을 때 검진 될 확률 99%, 실제로 걸리지 않았을 때 오진 될 확률 1%라 할 때, 어떤 사람이 걸렸다는 검진결과를 받고 실제 걸렸을 확률은? P(D)=∑θP(D|θ)P(θ) =0.99×0.1+0.01×0.9=0.108 P(θ|D)=0.1×0.990.108≈0.916 오검진률이 10 퍼로 오..

모수 통계적 모델링은 적절한 가정 위에서 확률 분포를 추정하는 것이 목표, 기계 학습과 통계학이 모두 공통적으로 추구하는 목표 그러나 유한한 데이터로 모집단 분포를 정확하게 알아낼 수 없기에 근사적으로 확률 분포를 추정한다. (불확실성을 고려하여 위험을 최소화) 데이터가 특정 확률 분포를 따른다고 선언한 후, 그 "분포를 결정하는 모수"를 추정하는 방법을 parameteric 방법론이라 한다. 특정 확률 분포를 가정하지 않고, 데이터에 따라 모델의 구조 및 모수의 개수가 유연히 바뀌면 nonparameteric 방법론(모수가 없는게 아님)이라 부른다. ex) 정규분포라 가정하면 평균, 분산이 모수이다. 이 두가지를 추정하는 방법을 통해 데이터를 학습하는 방법을 paramtetric 방법론의 예시. 대부분..

학률론은 딥러닝의 기계 학습 이론의 바탕이다. 손실함수(loss function)들의 작동 원리는 데이터 공간에서 통계적으로 해석해서 유도한다. 회귀 분석의 손실함수 L2 norm은 예측 오차의 분산을 가장 최소화 하는 방향으로 학습하도록 유도된다. 분류 문제에서 사용되는 cross entropy는 모델 예측의 불확실성을 최소화 하는 방향으로 학습하도록 유도된다. 데이터 공간을 X×Y 라 표기하고 D 는 데이터 공간에서 데이터를 추출하는 분포이다. 실제로 데이터만 가지고 데이터의 분포D를 알아내는 것은 불가능하기 때문에 기계학습 모형을 가지고 분포 D를 추론한다. 데이터는 확률변수로 (x,y)∼D 라 표기한다. 확률변수는 데이터 공간에서 임의로 관측되는 함수라고 ..

개념적 정리 미분은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구, 최적화에 가장 많이 사용되는 기법이다. 미분은 함수 f 의 주어진 점 (x, f(x))에서의 접선의 기울기를 구한다. 순간 변화율을 알면, 해당 점에서 어느 방향으로 움직여야 함수값이 증가 혹은 감소하는지 알 수 있다. 미분 값을 더해서 함수를 점차 극대화 시키는 것을 경사 상승법 gradient ascent, 미분 값을 더해서 함수를 점차 극소화 시키는 것을 경사 하강법 gradient descent라 한다. (목적 함수 최소화, 극소값으로 이동) 극 값에 도달하면 어차피 미분 값이 0이므로 더이상 움직이지 않게 된다. while(abs(grad) > eps): var = var - lr * grad gard = gradie..

숫자를 가지는 1차원 배열: 벡터 벡터를 원소로 가지는 2차원 배열: 행렬 1) 행렬을 이해하는 방법 1 행렬은 행 벡터를 원소로 가지는 2차원 배열이다. 주로 벡터는 소문자 x, 행렬은 대문자 X 로 표현된다. n 개의 벡터로 이루어진 행렬 X n개의 행과 m개의 열 index는 (행,열) 순 xij 전치 행렬은 행과 열의 위치를 바꿔준 것, 행렬의 연산에서 많이 사용된다. xji 벡터가 공간에서 한 점을 의미한다면, 행렬은 여러 점을 의미한다. 즉,행렬을 데이터들의 모임이라 할 때, 행렬의 행벡터 x_{i}는 i 번째 데이터를 의미한다. 각 포인트는 xi ex) i 번째 데이터의 j 번 째 변수 뽑기 행렬의 성분 곱은 벡터의 성분 곱과 같다. 행렬의 곱셈은 벡터의 곱셈과 다..

벡터 1차원 공간: 점 2차원 공간: 좌표평면의 점 3차원 공간: x,y,z 공간에서의 한 점이다. 벡터는 원점으로부터 상대적 위치를 표현한다. 벡터에 숫자를 곱해주면 길이만 변한다. (스칼라곱) 곱하는 대상이 1보다 크면, 길이가 늘어나고 1보다 작으면 줄어들고 음수면 방향이 바뀐다. 벡터는 숫자를 원소로 가지는 리스트 또는 배열이다. 같은 형태일 때, 덧셈 뺄셈(-벡터의 덧셈), 성분 곱이 가능하다. 성분 곱(hadamard product, elementwise product): 벡터의 노름(norm): 원점으로부터의 거리 norm 은 L1, L2 총 두가지의 종류가 있다. norm은 임의의 차원에서 성립하고 구성 성분 원소의 개수 상관없이 거리 계산이 가능하다. L1: 각 성분의 변화량의 절대값을 ..