목록Deep questions (9)
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 와 같은 꼴로 행렬곱을 할까요? (애초에 왜 가중치 행렬을 전치된 형태로 초기화하고 실제로 연산할 땐 다시 전치시켜 계산하는 걸까요?) 이 방식은 딥러닝에서 배치 처리를 ..
1. "바람도 없는 공중에 수직(垂直)의 파문을 내이며 고요히 떨어지는 오동잎은 누구의 발자취입니까 지리한 장마 끝에 서풍에 몰려가는 무서운 검은 구름의 터진 틈으로, 언뜻언뜻 보이는 푸른 하늘은 누구의 얼굴입니까. 꽃도 없는 깊은 나무에 푸른 이끼를 거쳐서, 옛 탑(塔) 위의 고요한 하늘을 스치는 알 수 없는 향기는 누구의 입김입니까. 근원은 알지도 못할 곳에서 나서 돌뿌리를 울리고, 가늘게 흐르는 작은 시내는 구비구비 누구의 노래입니까. 연꽃 같은 발꿈치로 가이없는 바다를 밟고, 옥 같은 손으로 끝없는 하늘을 만지면서, 떨어지는 해를 곱게 단장하는 저녁놀은 누구의 시(詩)입니까. 타고 남은 재가 다시 기름이 됩니다. 그칠 줄을 모르고 타는 나의 가슴은 누구의 밤을 지키는 약한 등불입니까." 학창시절의..
어떤 샘플 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 데이터들이 정규분..
실시간으로 생성되는 발화의 경우는 분명 시계열 데이터다. 문장의 의미가 시간순으로만 해석되는 경우에도 시계열 데이터다. 하지만 인간이 쓰고 말한 모든 언어 데이터가 과연 시계열적일까? 첫번째 아이디어 시간에 따른 순서에 구애 받지 않는, 더 나아가면 인과 관계에 종속되지 않는 말하기 또는 쓰기가 있을 수 있다. 어쩌면 이런 종류의 말하기, 쓰기야말로 인간과 구별되지 않는, 어쩌면 인간을 뛰어넘는 AI가 되기 위해 가져야할 능력이라고 할 수 있다. 왜냐하면 우리가 창의적인 생각을 떠올리는 가장 빠르고 쉬운 방법은 기존에 있던 생각들의 순서를 뒤엎고 인과관계를 무시해 새로운 연결, 패턴을 만들어 내는 것이기 때문이다. 두번째 아이디어 어떤 완성된 글 하나를 시계열 데이터가 아니라 일종의 이미지 데이터라고 생..
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 + ..
비유, 상상은 어느 정도 수준까지 모방해낼 수 있을 것처럼 보인다. 하지만 강한 형식논리와 수학적 귀납법에서 결코 자유로워 보이지 않는 컴퓨터 프로그래밍이 모순성, 규칙 깨뜨리기, 자기파괴를 허용할 수 있을까? 2월 2일 김승일 모두의 연구소 소장님의 강연에서 김승일 소장님이 한 이야기를 여기에 끌어 당겨와 본다면, many-