딥러닝(1) – 기초 개념

약 인공지능 / 강 인공지능

AI의 종류

  • 규칙기반 AI – 미리 작성된 일련의 규칙이나 알고리즘에 의해 작동되는 AI
  • 머신러닝 – 데이터를 통해 모델을 학습시키고, 학습시킨 모델로 예측(Regression)이나 분류(Classification)를 수행. 데이터의 양과 품질이 모델 성능에 중요한 영향을 미침. 주로 이미지 및 음성 인식, 자연어 처리, 데이터 기반 예측.
  • 딥러닝 – 인공 신경망을 활용하여 정보를 처리하고 전송하는 방식시뮬레이션 하도록 설계된 알고리즘. 주로 이미지 및 음성 인식, 자연어 처리, 자율적 의사결정 등이 있다.

딥러닝의 계층

  • 입력층 (Input Layer): 현실에서 데이터 축적 > 데이터 불러오기 > 데이터 전처리
  • 은닉층 (Hidden Layer):
  • 출력층 (Output Layer): 모델이 예측한 결과를 보는순간

모델 학습방법

지도학습(Supervised Learning) – 문제과 답(Label)을 알려주고, 유사성을 알아서 파악하라고(훈련) 한뒤 또 다른 문제를 주고 답을 예측하게하는것

  • 회귀(Regression) – 추세를 예측하는것. 그래프에있는 추세선을 Regression Line 이라고 함.
  • 분류(Classification) – 말 그대로 분류하는것.

비지도학습(Unsupervised Learning) – 문제만 주고 답을 알아서 찾으라는 형태.

  • Clustering – 입력 데이터를 기준으로 비슷한 특징을 가진 데이터끼리 군집(Cluster)로 나누는 알고리즘. (=그룹화)
  • Dimension Reduction – 주요값을 분류하고 불필요한 정보 삭제

준지도학습(Semi-Supervised Learning) – 학습데이터에 답이 있는것도 있고 없는것도 상당히 많이 존재할때 사용

  • 예시: 수만 장의 흉부 X-ray 사진이 있을 때, 의사가 일일이 “이건 폐렴, 이건 정상”이라고 적어주는 데는 엄청난 시간과 비용이 듭니다.
  • 이때 의사가 라벨링한 소량의 데이터와 라벨링되지 않은 대량의 데이터를 함께 학습시키면, 적은 비용으로도 지도학습에 가까운 성능을 낼 수 있습니다.

강화학습(Reinforcement Learning) – 문제를 주고 먼저 풀게한뒤 잘했는지 못했는지 feedback 와 reward를 주면 이 feedback과 reward를 통해 학습 함.

클러스터링(Clustering)

  • K-means: K개의 mean(평균, 중심) 값을 입력해서 K 갯수 만큼 분류하는 알로리즘. 어떤 중심점과 가까운지를 기준으로 클러스터링하다보니 복잡한 형태에서는 원하는 형태로 그룹화가 되지 않을수도있다.
  • DBSCAN (밀도 기반 군집화) – 데이터가 많이 몰려있는 부분을 선 고려하여 그룹화 시킴. 구체적으로 보면 임의의 점 P(Sample)을 기준으로 특정거리 (Epsilon) 내에 점이 M(Min samples) 개 이상이 있다면 하나의 군집으로 간주. 같은 클러스터내의 점P들을 e-이웃(Epsilon-neighborhood)라고 부르며 같은 cluster 안에 이웃이 M개 이상이면 핵심 샘플 or 핵심 지점 이라 부른다.

Outlier Detection (이상치 탐지): 데이터가 일반적인 군집과는 너무 멀리 많이 떨어져서 고립되어있는경우 이를 이상치(outlier)라고 부른다.

Dimensional Reduction (차원 축소): 고차원 데이터를 저차원인 새로운 데이터로 변환하는것.

Discrete (이산형): 하나씩 셀 수 있는 형태

현실에서 사용되는 Transformer의 Decoder 기반 모델

Transformer를 공장으로 보면 Encoder와 Decoder는 공장안에있는 기계라고 보면 됨. Transformer는 이 기계들을 잘 조합하여 만든 전체 신경망 아키텍쳐.

  • Transformer: 데이터 간의 관계를 한꺼번에 파악하는 어텐션(Attention) 매커니즘을 핵심으로 하는 신경망 구조
  • Encoder: 입력된 문장 전체를 읽고 그 의미와 문맥을 수치화된 정보(Vector)로 응축하는 [이해 도구]
  • Decoder: 인코더가 만든 정보나 이미 생성했던 단어들을 바탕으로, 다음에 올 가장 적절한 단어를 하나씩 예측해 내뱉는 [생성 도구]
  • etc 도구: Transformer에는 Positional Encoding, Feed-Forward Network (FFN), Residual Connectoin, Layer Normalization 등 도구가 더 있다.

Attention Macanism (어텐션 매커니즘): 문장 속 단어끼리의 연관성(가중치)를 계산하는 수학적 원리로 엔진 역할을 중심으로,
Positional Encoding(번호표)로 순서를 정하고, FFN(가공기)로 의미를 분석하고 Residual & Layer Norm(안전장치)로 전체 공정을 안정화 하는 구조로 되어있음.

GPT, LLaMa, PaLM, Gemini, Mistral 등.

언어모델 학습방법

Pre-train (사전학습) – “세상의 상식을 배우는 의무교육”

모델이 아무것도 모르는 상태에서 인터넷에 있는 방대한 데이터를 통째로 읽으면 언어의 규칙과 상식을 배우는 단계.

  • 학습데이터: 위키, 뉴스, 블로그, 소스 코드 등 초대형 단어 뭉치 (Raw Text)
  • 학습방법: 다음에 올 단어 맞추기 무한 반복
  • 결과: 문법을 깨우치고, “지구는 둥글다” 같은 상식을 갖게 되지만, 정작 “내 질문에 친절하게 대답해” 같은 특정 목적은 아직 모르는 상태.

Fine-tuning (미세 조정) – “특정 업무를 배우는 전공 연수”

사전 학습이 끝난 모델을 가져와서 우리가 원하는 목적을위해 추가로 학습시키는 단계.

  • 학습데이터: 질문-답변 쌍이나 요약문, 번역문 처럼 사람이 정성스럽게 많은 소량의 고품질 데이터.
  • 학습방법: 모델에게 이제부터는 질문이 들어오면 이런식으로 대답해야 해 라고 가이드라인을 준다.
  • 결과: 챗봇이 되거나 (ChatGPT), 법률 상담가, 코딩 도우미 등 전문적인 도구로 변신.

RLHF(Reinforcement Learning from Human Feedback) – 사람의 피드백으로 강화 학습

ChatGPT를 완성시킨 가장 핵심이 되는 기법

RLHF가 필요한 이유?
  • 사전 학습이 끝난 모델은 지식은 많지만, 유해한 답변을 내놓을 수 있음.
  • 세상에 모든 질문에 정답을 만드는것을 불가능.
  • 인간의 판단(Feedback)을 수식화 하여 모델에게 전달하는 방법으로 해결
ChatGPT의 보상 모델 활용 방법
  • 작동 원리: 모델이 질문 하나에 4~5개의 답변을 생성 후, Ranking을 정함.
  • 학습: 이 순서 데이터를 바탕으로 보상 모델 학습 시킴. 보상 모델은 인간이라면 이 답변에 몇접을 줄것인지 예측하는 인간대역.
  • 효과: 사람은 상당히 적은수의 샘플에만 순위를 매기면 됩니다. 보상 모델이 완성되면, 이후에는 수억개의 데이터에 대해 인간 대신 자동으로 보상을 계산해줍니다.
  • 스스로 학습: 이제 역으로 모델이 보상모델을 상대로 연습게임을 하면서 고득점을 획득하기위한 방법을 연구하면서, 가중치를 개선합니다.

Machine Learning Architecture Process (머신러닝 아키텍쳐)

머신러닝은 아래의 플로우 차트 가집니다. 설명은 차트 아래에.

graph LR
    %% 1단계: 데이터 준비
    subgraph Step1 ["데이터 준비"]
        direction TB
        A1[데이터 수집] --> A2[데이터 정제]
        A2 --> A3[데이터 레이블링]
        A3 --> A4[데이터 분석 및 시각화]
    end

    %% 2단계: 모델링
    subgraph Step2 ["모델링"]
        direction TB
        B1[피쳐 엔지니어링] --> B2[모델 설계]
        B2 --> B3[모델 학습]
    end

    %% 3단계: 모델 평가
    subgraph Step3 ["모델 평가"]
        direction TB
        C1[모델 검증] --> C2[성능 개선]
    end

    %% 4단계: 모델 배포
    subgraph Step4 ["모델 배포"]
        direction TB
        D1[배치 인퍼런스] --> D2[온라인 인퍼런스]
        D2 --> D3[엣지 인퍼런스]
    end

    %% 단계 간 가로 연결
    Step1 --> Step2
    Step2 --> Step3
    Step3 --> Step4
  • 데이터 준비: 학습 시킬 데이터를 만들고 모으는 과정
  • 데이터 정제: 데이터 수집을 통해 확보한 데이터는 일관되지 않고 규칙적이지 않을 가능성이 높아 데이터 정제(Data Cleansing) 프로세스를 통해 누락된 데이터를 채우고 불필요한 데이터를 제거함
  • 데이터 레이블링: 해당 데이터가 무엇을 뜻하는시 라벨을 달아주고 태그를 달아주는 과정. 이 정보를 통해 모델이 학습하므로 잘못된 정보가 있으면 모델 성능이 크게 떨어지게 된다.
  • 데이터 분석 및 시각화: 다양한 값이나 그래프를 통해 이상치 식별, 상관관계편향 분석, 가설 수립 및 변경, 데이터 패턴 확인.
  • 피쳐 엔지니어링: 특징 선택, 특징 샘플링, 특징 변환(문자열orObject를 숫자로), 특징추출, 특징구성(기존 특징을 활용해 새로운 특징을 생성하는 과정 예: 지출종류가 여러가지있으면 총 지출이라는 특징을 만들어줄수있다)
  • 모델 설계:

MLOps

flowchart TD
    %% 외부 컴포넌트 정의
    Repo[코드 저장소]
    Lake[데이터 레이크]
    Monitor[모니터링]
    Feature[피쳐 스토어]
    Analysis[데이터 분석]
    
    %% 7번 조건을 위한 투명한 중간 기착지 (Junction)
    J(( ))
    style J fill:transparent,stroke:transparent,color:transparent

    %% 중앙 ML 파이프라인 그룹 (세로 정렬)
    subgraph Pipeline [ML 파이프라인]
        direction TB
        D1[데이터 준비] --> D2[모델링] --> D3[모델 평가] --> D4[모델 배포]
    end

    %% 1. 상단: 코드 저장소 <-> 그룹
    Repo <--> Pipeline

    %% 2. 좌측: 데이터 레이크 -> (중간 지점) -> 그룹
    Lake --> Pipeline

    %% 3. 우측: 그룹 <-> 모니터링
    Pipeline --> Monitor

    %% 4. 하단: 그룹 <-> 피쳐 스토어
    Pipeline <--> Feature

    %% 5. 모니터링 -> 데이터 분석
    Monitor --> Analysis

    %% 6. 피쳐 스토어 -> 데이터 분석
    Feature --> Analysis

    %% 7. 데이터 분석 아래쪽 -> 2번 화살표 중간(J)으로 연결
    Analysis --> Lake

댓글 남기기