합성 함수 계산그래프와 연쇄법칙(chain rule) (구 블로그 글 복구)
·
Study/Data Science
- 이번 포스팅으론 딥러닝 모델 학습을 이해하기 위해 반드시 이해해야 하는 오차 역전파법을 이해하기 위한 선행 지식을 정리하겠습니다. [합성함수란?]함수의 실행 단계를 2개 이상으로 나눌수 있는 함수입니다.예를들면, z = (x+y)^2 이라는 함수는,먼저 x+y라는 계산을 먼저 하고,이후에 제곱을 해야합니다. 병렬적으로 동시에 처리할수 있는 것이 아니고, 순서를 지니죠. - 즉, 합성함수는, 한 함수의 결과값이 다른 함수의 입력값이 되어 사용되는 함수를 말합니다.위의 함수에서, t = x + y 라고 하고, z = t^2 으로 나누어 표현할수 있습니다. 즉, t 값이 먼저 있고, z값을 찾는 것입니다.[계산그래프란?]- 계산 그래프를 쉽게 이해하기 위해 예시를 하나 들어보겠습니다.이런 계산을 한번 해봅..
음파 데이터 분석 기본과 딥러닝 소리 분류기 구현
·
Study/Data Science
- 이번 포스팅으론 소리 데이터를 분석하여 활용하는 기본 개념을 알아보고,간단한 소리 데이터 분류 문제를 해결하는 실습을 수행하겠습니다. 소리 데이터, 즉 음파의 파형을 분석할 때, 소리라는 데이터가 특별한 것이 아니라, 시각 데이터와 같이 그저 텐서로서 다룰수도 있다는 것을 알아보는 것이 목적입니다.- 먼저 소리라는 것과 컴퓨터에서 이 데이터의 성질과 형태에 대해 간단히 설명하겠습니다.(이전에 정리한 음파 데이터 정리글도 추천합니다.)소리는 모두들 아시다시피 공기를 매질로 하여 청각기관으로 수용할수 있는 부류의 데이터를 의미합니다.Hz(헤르츠, 초당 진동 수)에 따라 소리의 높낮이가 달라지며,dB(데시벨)에 따라 소리의 크기가 달라집니다. (10 dB당 실제값이 10배 증가하는 로그함수) 인간의 가청음..
음파 데이터 이론(Sampling Rate, Bit Depth) (구 블로그 글 복구)
·
Study/Data Science
- 이번 포스팅에서는 소리라는 현상을 데이터의 관점에서 어떻게 이해하는 지에 대해 알아보겠습니다. - 디지털 녹음 과정아날로그 데이터인 음파를, 음파 감지 센서(마이크)를 이용해서 받아들입니다.센서는 음파에서 오는 진동을 받아들여, 이를 전기적 신호로 전달합니다.일단 여기서 일차적인 데이터의 손실이 생겨날수 있습니다.마이크의 센서가 음파를 받아들이는 과정에서 발생하는 것이죠.물론 마이크 성능이 좋고, 무엇보다 사람이 귀로 들을수 있는 이상으로만 예민한 센서라면 인지적인 역할로서는 충분한 성능입니다. 어쨌건 이렇게 음파에 간섭을 받은 전기적 신호가 만들어질때만 해도 이것은 아직 아날로그 신호라 할수 있습니다.(공기를 매질로하던 신호가 전기 신호로 변환. 공기의 떨림이 전기의 떨림으로 전환.) 여기서 나온 ..
텐서의 차원(shape) 읽는 법과 축(axis) 쉽게 이해하기 (구 블로그 글 복구)
·
Study/Data Science
- 텐서(tensor)란,수학과 물리, 그리고 딥러닝(머신러닝)에서 자주 쓰이는 개념인데, 간단하게 말하면 다차원 배열입니다. 1 이나 2, 3 과 같은 단일 수치값은 스칼라(Scalar) 라고 부르며, [0,1,2]이런 1D-array가 벡터(vector), [[1,2,3],[4,5,6]]이런 2D-array가 행렬(matrix)이라는 이름으로 불립니다. 이러한 것들은 텐서라 부르며, 쉽게 말해 '스칼라의 묶음'입니다. 즉, 스칼라는 0차 텐서,벡터는 1차 텐서, 행렬은 2차 텐서, 3차원 배열은 3차 텐서, 그 위로 4차 텐서, 5차 텐서... 이렇게 되는 것입니다. - 이번 포스팅으로는 이러한 텐서의 차원과 축을 이해하는 방식을 정리하려 합니다.이로인해 딥러닝 혹은 다차원 데이터 분석시 유용하게 사..
KL Divergence 정리
·
Study/Data Science
- 사전지식으로 필요한 정보이론 기초와, cross entropy에 대한 것은,링크를 참고하세요. - 정답 확률분포와 예측 확률분포에 대해 먼저 이야기해 봅시다.정답 확률분포 p는, 말 그대로 정답입니다.딥러닝의 분류문제로 보자면,[1,0,0,0]과 같은 정답 레이블로,레이블이 [강아지, 고양이, 거북이, 새]일 확률을 나타낸 것이라면,위 레이블은 '강아지' 100퍼센트 라는 것이죠. 이것의 엔트로피는 0입니다.계산할 것도 없이, 이미 가장 큰 확률이 강아지인데다가, 다른 것으로 판단될 여지가 없죠. 그러면 예측 확률분포 q는, 딥러닝 모델이 출력한 확률값으로 합시다.모델이 학습은 해서 대충 알기는 한데,데이터로 판단했을 때, 뭔가 애매한 부분도 존재해서,[0.8, 0.1, 0.06, 0.04] 이렇게 ..
딥러닝 손실함수 Cross Entropy Error 정리 (구 블로그 글 복구)
·
Study/Data Science
- MSE 와 CEE는 대표적인 딥러닝 손실함수입니다. (분류문제, 즉 범주형 데이터 예측 문제에는 CEE를 사용하는 것이 좋고, 회귀문제인 수치형 데이터 예측문제에는 MSE를 사용하는게 좋다고들 하죠.)딥러닝 손실함수는 무엇일까요?너무 기초적인 내용이니, 자세한 내용은 딥러닝 알고리즘 기초 정리글들을 확인하시고, 요약하자면,'예측값이 정답값에 얼마나 멀리 떨어져있는가'에 대한 것을 알아내는 함수입니다. 이 함수의 값이 결국 머신러닝 학습의 기준이 되고,이 손실함수 값이 최소가 되는 방향으로, 내부 수식들의 파라미터를 갱신하는 것이 학습입니다.즉, 손실함수라고 칭해진다면, '예측값이 정답값과 동일하면 작은 값을, 예측값이 정답값과 다를수록 큰 값을 출력하는 함수'라는 것이고, 각 손실함수별 종류가 나눠진..
고차원 데이터에서 차원의 저주란? (딥러닝 학습시 데이터 특징을 제한하는 이유와 빅데이터 기술의 중요성) (구 블로그 글 복구)
·
Study/Data Science
[차원의 저주(Curse of Dimensionality)]- 차원의 저주란, 고차원 데이터 공간에서 데이터 표본이 희박해진다는 것입니다. - 어떠한 결과에 대한 원인으로 지목된 데이터 후보가 단 하나 존재한다고 합시다. 두 데이터 사이의 연관관계를 살펴보았을 때, 표본 데이터가 증가추세를 이룰 때, 결과 데이터 역시 증가 추세를 이루는 것을 관측했다면, 우리는 쉽게 두 데이터의 관계가 양의 상관관계에 있다고 결론지을 수 있죠. 하지만 현실상의 사건은 위와 같은 선형적 관계만으로 이루어지는 것이 아닙니다.예를들어 배우자의 이상적 키를 물었을 때, 키가 크면 클 수록 좋지만 일정 수준 이상을 넘어가면 비호감으로 바뀐다거나,어떠한 조건이 충족되었을 때는 양의 상관관계이지만, 다른 상황에서는 음의 상관관계를 ..
정보이론 기초 정리(정보량 + 정보 엔트로피) (구 블로그 글 복구)
·
Study/Data Science
(정보이론 역사)claude shannon 은,미국의 수학자이자 전기 공학자입니다. 현대 정보를 다루는 IT분야에 있어서 빼놓을수 없는 인물로,디지털 회로이론에서 부울의 논리회로를 바탕으로 전자적으로 이를 해석하여, 회로로 이를 표현할수 있다는 것을 알아냈으며,전기를 회로와 전기력의 조합으로만 바라보던 시절에,이 회로라는 것을 이용하여 정보를 표현하고 다룰수 있다는 시각을 제공했습니다.그의 석사 논문인 A Mathematical Theory of Communication 은, 정보 이론의 시초가 되었기에,섀넌을 정보이론의 아버지라고 부릅니다. 1937년 섀넌의 또다른 석사 논문 A symbolic Analysis of Relay and Switching Circuits의 단편을 발췌하면, "모든 회로는 ..
딥러닝 Optimizer 종류 정리
·
Study/Data Science
- 본 포스팅에서는 딥러닝의 신경망 학습시 파라미터를 어떤 방식으로 갱신시키는지에 대한 역할을 담당하는 옵티마이저에 대해 정리하겠습니다. 저 스스로도 공부하고 글을 정리하며, 최대한 이해가 쉬우면서 객관적인 정보를 전하는 것을 목표로 했습니다. 이외에도 유튜브 동영상 https://www.youtube.com/watch?v=4qJaSmvhxi8&t=320s 를 추천하며, C2W2L01부터 옵티마이저에 대한 자세한 설명이 되어있습니다. [옵티마이저란]- 옵티마이저란, 머신러닝 학습 프로세스에서 실제로 파라미터를 갱신시키는 모듈을 의미합니다. 오차역전파법과 같은 방식으로, 각 파라미터의 기울기를 그라디언트로 구하여 재료를 구해왔으면, 이를 이용하여 실제 가중치 변화를 주는 부분이라 생각하시면 됩니다.(어찌보..
데이터 사이언스 실습을 위한 개발 환경 준비(Python, Anaconda, CUDA, Torch)
·
Study/Data Science
- 이번 포스팅으로는 앞으로 제가 정리할 데이터 분석 분야 정리글의 실습을 위한 환경설정 방법을 정리하겠습니다. - 먼저 데이터 분석 정리글의 방향성에 대해 먼저 정리하자면,https://github.com/RaillyLinker/Python_DataScience 저는 현재 위 출처의 Git Repository 에 제가 공부한 내용을 하나씩 올리며 데이터 분석 분야를 공부중입니다.저의 학습 목표는 현재 제 전공인 백엔드 개발 능력과 합쳐 실용적 서비스를 만드는 것이며,공부의 중간 중간 제가 얻은 지식을 정리하는 동시에 블로그 글로서 공유하려고 합니다. 고로 코드 중심의 지식 공유가 주가 될 것이며,위에 공유드린 프로젝트 내의 코드에는 위와 같이 제가 공부한 내용을 요약한 주석이 상세히 적혀있으므로 참고하..