딥러닝에서 확률론이 필요한 이유 딥러닝은 확률론 기반의 기계학습 이론에 바탕을 두고있음 기계학습에서 사용되는 loss function의 작동원리는 데이터 공간을 통계적으로 해석해서 유도 회귀분석에서 손실함수로 사용되는 L2노름은 예측오차의 분산을 가장 최소화하는 방향으로 학습하도록 유도 분류 문제에서 사용되는 cross-entropy는 모델 예측의 불확실성을 최소화하는 방향으로 학습하도록 유도 분산 및 불확실성을 최소화하기 위해서는 측정하는 방법을 알아야함 확률분포 데이터공간을 X*Y라고 표기하고 D는 데이터공간에서 데이터를 추출하는 분포 데이터는 확률변수(x,y) ~ D라표기 확률변수 종류 확률변수의 분포의 종류(D)에 의해 구분 이산형확률변수 (discrete) 확률 변수가 가질 수 있는 경우의 수를..
Softmax 모델의 출력을 확률로 해석할 수 있게 변환(확률 벡터로 변환 주어진 데이터가 어떤 클래스에 어느정도의 확률로 속하는지 알 수 있음 학습에만 필요하고 추론할 때는 one-hot-vector를 사용 선형모델에 사용 출력물의 모든 값을 고려 Activation function (활성함수) 해당 주소에 해당하는 값만 갖고 계산 vector가 아닌 실수값만 input으로 받음 이 활성함수를 이용해서 선형으로 나온 출력물을 비선형으로 출력할 수 있고 이때의 비선형 출력물을 잠재벡터(히든벡터)라고 부르기도하고 뉴런이라고 부름 실수값을 입력으로 받고 실수값을 return함 활성함수를 사용하지 않으면 딥러닝은 선형모형과 차이가 없음 최근 ReLU를 사용 (이미지 출처: boostcamp ai precour..
미분(differentiation) 변수의 움직임에 따른 함수 값의 변화를 측정하는 도구 최적화에서 제일 많이 사용하는 기법 파이썬의 sympy를 사용하면 미분을 계산 가능 import sympy as sym sym.diff(sym.poly(x**2 + 2*x +3), x) -> 2x + 2 함수값을 증가시키고 싶다면 미분값을 더함 함수값을 감소시키고 싶다면 미분값을 뺌 경사 상승법(gradient ascent): 미분값을 더하면서 함수의 극대값을 구할 때 경사 하강법(gradient descent): 미분값을 빼면서 함수의 극소값을 구할 때 극 값에 도달하게 되면 움직임이 멈춤 편미분: 벡터가 입력인 다변수 함수의 경우 사용되는 미분방법 그레디언트 벡터: d차원 벡터를 입력으로 갖는 함수는 편미분을 d..
목차 1. 벡터란 벡터는 숫자를 원소로 가지는 리스트 또는 배열 벡터는 공간에서 한 점을 나타냄 원점으로부터 상대적 위치를 표현 벡터에 숫자를 곱해주면 길이만 변함 (스칼라곱) 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈을 할 수 있음 두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현함 # 행벡터 x = [1,8,2] # 열벡터 x = [1, 7, 2] 벡터끼리 같은 모양을 가지면 성분곱을 할 수 있음 x = [1, 2, 3] y = [2, 4, 5] x * y = [2, 8, 15] 2. 벡터의 노름 norm은 원점에서부터의 거리를 말함 임의의 차원 d에 대해 성립 두 벡터사이의 거리는 두 벡터의 뺄셈을 이용해서 구함 1) L1 Norm 각 성분의 변화량의 절대값을 모두 더함 마름모 형태의 기하학정..
목차 1. Numpy Numerical Python 파이썬은 인터프리터 언어이기 때문에 대용량 데이터를 다룰 때 조금 힘들기 때문에 Numpy라는 패키지를 활용 선형대수와 관련된 기능 제공 내부 구조는 C로 되어있음 ndarray(numpy dimension array)라는 단위를 사용 하나의 데이터 type만 사용 Dynamic typing을 지원하지 않음 For문을 사용하지 않고 웬만한면 가능 temp = np.array(["1",2,3], float) type(temp[0]) -> float64 dtype 배열의 데이터 타입을 리턴함 temp = np.array(["1",2,3], float) temp.dtype -> float64 shape dimension의 구성정보 temp = np.array..