목록전체 글 (222)
꺼내먹는지식 준

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

\[ P(A\cap B) = P(B)P(A|B) \] \[ P(B|A) = \frac{P(A \cap B)}{P(A)} = P(B)\frac{P(A|B)}{P(A)} \] ex) Covid 발병률이 10%로 알려져 있다. Covid에 실제 걸렸을 때 검진 될 확률 99%, 실제로 걸리지 않았을 때 오진 될 확률 1%라 할 때, 어떤 사람이 걸렸다는 검진결과를 받고 실제 걸렸을 확률은? \[P(D) = \underset{\theta}{\sum}P(D|\theta)P(\theta)\ \\ = 0.99 \times 0.1 + 0.01 \times 0.9 = 0.108 \] \[ P(\theta|D) = 0.1 \times \frac{0.99}{0.108} \approx 0.916 \] 오검진률이 10 퍼로 오..

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

학률론은 딥러닝의 기계 학습 이론의 바탕이다. 손실함수(loss function)들의 작동 원리는 데이터 공간에서 통계적으로 해석해서 유도한다. 회귀 분석의 손실함수 L2 norm은 예측 오차의 분산을 가장 최소화 하는 방향으로 학습하도록 유도된다. 분류 문제에서 사용되는 cross entropy는 모델 예측의 불확실성을 최소화 하는 방향으로 학습하도록 유도된다. 데이터 공간을 $X \times Y$ 라 표기하고 $D$ 는 데이터 공간에서 데이터를 추출하는 분포이다. 실제로 데이터만 가지고 데이터의 분포$D$를 알아내는 것은 불가능하기 때문에 기계학습 모형을 가지고 분포 $D$를 추론한다. 데이터는 확률변수로 $(x,y) \sim 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는 (행,열) 순 $x_{ij}$ 전치 행렬은 행과 열의 위치를 바꿔준 것, 행렬의 연산에서 많이 사용된다. $x_{ji}$ 벡터가 공간에서 한 점을 의미한다면, 행렬은 여러 점을 의미한다. 즉,행렬을 데이터들의 모임이라 할 때, 행렬의 행벡터 x_{i}는 i 번째 데이터를 의미한다. 각 포인트는 $x_{i}$ ex) i 번째 데이터의 j 번 째 변수 뽑기 행렬의 성분 곱은 벡터의 성분 곱과 같다. 행렬의 곱셈은 벡터의 곱셈과 다..

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

Numpy 와 통합되어 강력한 기능 제공 인덱싱, 연산 함수, 전처리 함수 제공 데이터 처리 및 통계 분석 전체 표: Data table, Sample Columns 는 atrribute, field, feature 이라고도 부른다. Row 한 줄을 instance, tuple, row 라고 부른다. Data 를 value 라고 부르기도 한다. 1.데이터 읽어 들이는 법 df_data = pd.read_csv( 저장주소 , sep= "\s+", header = None) 랜덤으로 생성되는 csv 파일을 하나 줏어왔다. *"\s+" 읽어들일 때 나누는 기준을 single space 즉 띄어쓰기로 하는데(s), 각 데이터 한 줄 마다 single space 가 여러개 존재한다는 뜻(+) df_data.hea..

numpy는 코드로 방정식을 표현하고, 쉽게 계산할 수 있도록 도와준다. $2x_{1} + 2x_{2} +x_{3} = 9\\ 2x_{1} - 1x_{2} + 2x_{3} = 6\\1x_{1} - 1 x_{2} + 2x_{3} = 5$ coefficient = [[2,2,1], [2,-1,2], [1, -1, 2]] constant = [9, 6, 5] numpy를 왜 쓸까? 1 누군가 구현해 놓은 matrix 관련 각종 수식 사용가능 2 python은 intepreter 언어라 느리기에, 이러한 고성능 과학 팩키지를 사용해야 한다. --> 정확히 numpy가 list보다 더 빠른 이유는 다음과 같다. (https://checkwhoiam.tistory.com/94 참고) 1) list 는 다른 타입의 ..
메모리 1 byte = $2^{8}$ int: 4 bytes $-2^{31} \sim 2^{31}-1$ float: 8 bytes $-10^{308} \sim 10^{308}$ --> 메모리의 효율적 활용을 고려하자. Indexing a = "Hajun always pushes himself to the end" a[-3:] -3 부터 끝까지: end a[:] a 변수의 처음부터 끝까지: Hajun always pushes himself to the end a[-100: 100] 범위를 넘어갈 경우 최대 범위 지정: Hajun always pushes himself to the end a[::2] 2칸 단위로: Hjnawy uhshmeft h n a[::-1] 역방향: dne eht ot flesmih ..