로컬 생성형 AI 답변 시스템 구현 (LLM, LangChain, RAG 개념 설명 및 응용) - 문서를 이용한 AI 답변 커스텀
·
Data Science
- 이번 포스팅에선,ChatGPT 와 같은 유료 API 를 사용하지 않고,OpenSource 로 제공되거나 스스로 학습시킨 인공지능 모델을 개발자 본인이 직접 자신의 컴퓨터에서 실행시키는 방식을 설명할 것입니다. 또한, 어느 부분에 있어서 개선의 여지가 있는지에 대한 설명과, 그 방향성을 제시드립니다. - 본 게시글에서는 인공지능 모델 연구개발 범위의 전문적인 지식을 설명하지는 않을 것이지만,LLM 과 LangChain 등의 기본적인 개념을 이해하는 것에서 시작하여 실제로 LLM을 구현하고 이를 백엔드 서비스로 배포하는 방법 까지를 실습하겠습니다. [이론 설명]- 먼저 인공지능 시스템을 만들기 전에, 기반 지식을 간단히 정리하겠습니다.LLM 에 대한 간략한 설명부터 시작할 것이기에,그 이전의 기반지식부터..
딥러닝 speech recognition 모델 개념 정리(구 블로그 글 복구)
·
Data Science
- speech recognition이란? 음성 인식이란, 인공지능 분야가 연구되기 시작한 것과 거의 동시에 연구되기 시작한 분야입니다. 인공지능은 컴퓨터가 발명된 것과 거의 동시에 연구되기 시작되었습니다.컴퓨터라는 구조 자체가 단순한 전자 계산기를 가정하고 만든 것이 아니라,인간적인 지적 활동을 인공적으로 하기 위한 구조를 기계로 구현하려는 노력(튜링 머신)이라는 것을 생각해보면 기계가 사람의 말을 이해하도록 하는 노력에 대한 관심과 역사에 대해 알수 있겠네요. 음성인식 분야는 AI의 내부에 속한 하위개념이기에 AI의 발전과 거의 비슷한 방향성과 역사를 가집니다. 간단하게 이를 설명하자면,1. 컴퓨터라는 기계가 만들어지고, 알고리즘과 수학적 모델링으로 이를 구현할수 있으리라는 기대가 모아짐2. 퍼셉트론..
공분산 행렬과 주성분 분석(PCA) (구 블로그 글 복구)
·
Data Science
- 공분산 행렬은 말 그대로 공분산에 대한 행렬을 뜻합니다. 다차원 multy feature 데이터에 존재하는 각 2개씩의 특징 사이에서 생겨나는 공분산을 구하기 위한 행렬 연산을 뜻하는데, 당연히 이를 이해하려면 공분산에 대해 알아야겠죠? 요약해보자면, 공분산은 특징 2개의 축으로 이루어진 2차원 데이터 분포의 특성을 파악하기 위한 방법으로, COV(x,y) = E{sum(X-E(x))*(Y-E(y))} 로 계산이 가능합니다. 기대값, 즉 여기선 그냥 평균값이라 생각하면 되는데,현재 데이터 분포의 평균을 0으로 정렬하기 위해서 이를 각 원소에 빼주고, 이 값을 곱해주어 더해줍니다.그리고 그 값에 대한 평균을 구하는 방식으로 해당 데이터 분포의 성질을 알아내는 것으로,이 값이 양수이면 두 특징은 양의 상..
Maximum Likelihood Estimation(최대 우도 추정, MLE) 의 이해 (구 블로그 글 복구)
·
Data Science
- 세상에는 내포된 실제 확률과, 관측으로 얻어낸 확률이 존재합니다.동전 던지기의 확률은 얼마일까요?쉽게 앞/뒤 결과를 가진 공정한 사건이라 1/2라고 할수 있겠는데,이걸 어떻게 판단했나요? 결국 확률은, '전체에서 일어난 사건 개수 / 전체 사건 개수' 를 뜻합니다. 우리는 전체 사건의 개수를 파악하지 못할 가능성이 큽니다.너무 많거나, 조사에 비용이 너무 많이 드는 경우가 그러합니다. 이럴때 우리는 표본을 조사해서, 그 표본공간 안의 사건들로 확률을 유추합니다. 이렇게 표본의 확률을 사용하여 모수의 확률을 측정하려는 질문이 바로 MLE의 시작입니다.(정확히는, 관측된 표본을 가장 잘 설명하는 모수를 찾아내는 것.) - 확률 이해하기어떤 항아리가 존재한다고 가정합시다.우리는 이 내부를 모른다는 가정이지..
합성 함수 계산그래프와 연쇄법칙(chain rule) (구 블로그 글 복구)
·
Data Science
- 이번 포스팅으론 딥러닝 모델 학습을 이해하기 위해 반드시 이해해야 하는 오차 역전파법을 이해하기 위한 선행 지식을 정리하겠습니다. [합성함수란?]함수의 실행 단계를 2개 이상으로 나눌수 있는 함수입니다.예를들면, z = (x+y)^2 이라는 함수는,먼저 x+y라는 계산을 먼저 하고,이후에 제곱을 해야합니다. 병렬적으로 동시에 처리할수 있는 것이 아니고, 순서를 지니죠. - 즉, 합성함수는, 한 함수의 결과값이 다른 함수의 입력값이 되어 사용되는 함수를 말합니다.위의 함수에서, t = x + y 라고 하고, z = t^2 으로 나누어 표현할수 있습니다. 즉, t 값이 먼저 있고, z값을 찾는 것입니다.[계산그래프란?]- 계산 그래프를 쉽게 이해하기 위해 예시를 하나 들어보겠습니다.이런 계산을 한번 해봅..
음파 데이터 분석 기본과 딥러닝 소리 분류기 구현 (구 블로그 글 복구)
·
Data Science
- 이번 포스팅으론 소리 데이터를 분석하여 활용하는 기본 개념을 알아보고,간단한 소리 데이터 분류 문제를 해결하는 실습을 수행하겠습니다. 소리 데이터, 즉 음파의 파형을 분석할 때, 소리라는 데이터가 특별한 것이 아니라, 시각 데이터와 같이 그저 텐서로서 다룰수도 있다는 것을 알아보는 것이 목적입니다.- 먼저 소리라는 것과 컴퓨터에서 이 데이터의 성질과 형태에 대해 간단히 설명하겠습니다.(이전에 정리한 음파 데이터 정리글도 추천합니다.)소리는 모두들 아시다시피 공기를 매질로 하여 청각기관으로 수용할수 있는 부류의 데이터를 의미합니다.Hz(헤르츠, 초당 진동 수)에 따라 소리의 높낮이가 달라지며,dB(데시벨)에 따라 소리의 크기가 달라집니다. (10 dB당 실제값이 10배 증가하는 로그함수) 인간의 가청음..
음파 데이터 이론(Sampling Rate, Bit Depth) (구 블로그 글 복구)
·
Data Science
- 이번 포스팅에서는 소리라는 현상을 데이터의 관점에서 어떻게 이해하는 지에 대해 알아보겠습니다. - 디지털 녹음 과정아날로그 데이터인 음파를, 음파 감지 센서(마이크)를 이용해서 받아들입니다.센서는 음파에서 오는 진동을 받아들여, 이를 전기적 신호로 전달합니다.일단 여기서 일차적인 데이터의 손실이 생겨날수 있습니다.마이크의 센서가 음파를 받아들이는 과정에서 발생하는 것이죠.물론 마이크 성능이 좋고, 무엇보다 사람이 귀로 들을수 있는 이상으로만 예민한 센서라면 인지적인 역할로서는 충분한 성능입니다. 어쨌건 이렇게 음파에 간섭을 받은 전기적 신호가 만들어질때만 해도 이것은 아직 아날로그 신호라 할수 있습니다.(공기를 매질로하던 신호가 전기 신호로 변환. 공기의 떨림이 전기의 떨림으로 전환.) 여기서 나온 ..
텐서의 차원(shape) 읽는 법과 축(axis) 쉽게 이해하기 (구 블로그 글 복구)
·
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차 텐서... 이렇게 되는 것입니다. - 이번 포스팅으로는 이러한 텐서의 차원과 축을 이해하는 방식을 정리하려 합니다.이로인해 딥러닝 혹은 다차원 데이터 분석시 유용하게 사..
딥러닝 손실함수 Cross Entropy Error 정리 (구 블로그 글 복구)
·
Data Science
- MSE 와 CEE는 대표적인 딥러닝 손실함수입니다. (분류문제, 즉 범주형 데이터 예측 문제에는 CEE를 사용하는 것이 좋고, 회귀문제인 수치형 데이터 예측문제에는 MSE를 사용하는게 좋다고들 하죠.)딥러닝 손실함수는 무엇일까요?너무 기초적인 내용이니, 자세한 내용은 딥러닝 알고리즘 기초 정리글들을 확인하시고, 요약하자면,'예측값이 정답값에 얼마나 멀리 떨어져있는가'에 대한 것을 알아내는 함수입니다. 이 함수의 값이 결국 머신러닝 학습의 기준이 되고,이 손실함수 값이 최소가 되는 방향으로, 내부 수식들의 파라미터를 갱신하는 것이 학습입니다.즉, 손실함수라고 칭해진다면, '예측값이 정답값과 동일하면 작은 값을, 예측값이 정답값과 다를수록 큰 값을 출력하는 함수'라는 것이고, 각 손실함수별 종류가 나눠진..
고차원 데이터에서 차원의 저주란? (딥러닝 학습시 데이터 특징을 제한하는 이유와 빅데이터 기술의 중요성) (구 블로그 글 복구)
·
Data Science
[차원의 저주(Curse of Dimensionality)]- 차원의 저주란, 고차원 데이터 공간에서 데이터 표본이 희박해진다는 것입니다. - 어떠한 결과에 대한 원인으로 지목된 데이터 후보가 단 하나 존재한다고 합시다. 두 데이터 사이의 연관관계를 살펴보았을 때, 표본 데이터가 증가추세를 이룰 때, 결과 데이터 역시 증가 추세를 이루는 것을 관측했다면, 우리는 쉽게 두 데이터의 관계가 양의 상관관계에 있다고 결론지을 수 있죠. 하지만 현실상의 사건은 위와 같은 선형적 관계만으로 이루어지는 것이 아닙니다.예를들어 배우자의 이상적 키를 물었을 때, 키가 크면 클 수록 좋지만 일정 수준 이상을 넘어가면 비호감으로 바뀐다거나,어떠한 조건이 충족되었을 때는 양의 상관관계이지만, 다른 상황에서는 음의 상관관계를 ..