목록Deep questions/수학적 바탕 (4)
questionet
PyTorch (또는 다른 딥러닝 프레임워크)에서, nn.linear(in_features, out_features) # 입력특성, 출력특성 코드를 사용해 nn.Linear(20, 30)를 실행하면 파이토치는 내부적으로 30×20 shape의 가중치 행렬 A를 초기화합니다. 한편 입력 데이터 X는 일반적으로 (batch_size x 20)의 형태를 가집니다. PyTorch에서 이 두 객체의 행렬곱을 수행할 때 실제 수행되는 연산은 X @ A.T 이고 이 연산의 결과는 (batch_size x 30) 형태의 출력입니다. 왜 x @ A.T 와 같은 꼴로 행렬곱을 할까요? (애초에 왜 가중치 행렬을 전치된 형태로 초기화하고 실제로 연산할 땐 다시 전치시켜 계산하는 걸까요?) 이 방식은 딥러닝에서 배치 처리를 ..
어떤 샘플 X들의 집합이 있을 때 X_new = (X - mean) / Std 각 샘플에서 샘플들의 평균을 빼주고 표준편차로 나눠주는 것 = z1 score 정규화 (표준화) X_new = (X - X_min) /( X_max - X_min) 각 샘플에서 최소값을 빼주고 최대값과 최소값의 차이로 나눠주는 것 = min-max scaling or 정규화 X_new = X / ||X| 각 샘플들을 L2 norm으로 나눠주는 것 = L2 norm 정규화 공통점 값이 원래보다 작아진다 표준화의 특징 0 데이터들을 zero-centered 시킨다. (데이터들의 평균이 0, 분산이 1이 되도록한다) 1 데이터들을 특정 값의 범위 내에 분포하게 만들지 않는다. 2 아웃라이어에 영향을 덜 받는다. 3 데이터들이 정규분..
Q1 : 단어 벡터 사이의 관계를 측정하는 방법이 있을까? 설명 순서 1 코사인 법칙 2 벡터의 norm 3 코사인 유사도 1 코사인 법칙 벡터 a, b가 이루는 각이 θ일 때, 두 벡터의 내적은 각 벡터의 길이(유클리드 거리)와 cosθ를 곱한 것과 같다. 결론을 선취하자면 이때 두 벡터 x, y의 코사인 유사도는 아래와 같다. 즉 두 벡터 사이가 이루는 각도를 두 벡터의 내적과 유클리드 거리로 표현한 것이다. 다른 한편으로 보면 x, y 각 벡터를 정규화한 다음 내적하는 것과 같다 2 벡터의 norm 벡터는 크기와 방향을 가진 양이다. norm은 크기(거리)의 일반화다. 벡터의 크기는 ||x|| 이렇게 표현한다. (cf) 실수의 크기는 |x|, 실수의 절대값이다) 일반화의 방법에 두 가지가 있다. L..
expectation ≠ average (mean) 이론적인 평균값 ≠ 진짜 샘플들의 평균값 1. y = 2x + n (n은 노이즈), y의 평균은 얼마인가? E[y] = E[2x + n] E[y] = E[2x] + E[n] E[n]=0 이라면, y의 평균은 2x 확률변수는 y, n 랜덤성이 없으면 확률변수가 아니다. 그래서 2x는 확률변수가 아니다. 확률변수가 아닌 건 기대값의 의미가 없다. 2. y = (2x + n)**2, y의 평균은 얼마인가? n의 평균이 0이고 분산이 1이면 4x**2 + 4xn + n**2 E[4x**2] + E[4xn] + E[n**2] y의 평균은 4x**2 + 1. 이것이 의미하는 게 무엇일까? y = (2x + n)**2 = 4(x + n/2)**2 y = 4(x + ..