AL 공부

프로젝트전공부·2024년 9월 11일

AL ML DL

인공지능(AI), 머신러닝(ML), 그리고 딥러닝(DL)은 모두 데이터 분석과 학습에 관련된 기술이지만, 그 범위와 접근 방식에서 차이가 있습니다.

인공지능 (AI, Artificial Intelligence)
AI는 인간처럼 사고하고 결정을 내릴 수 있는 기계를 만드는 기술을 말합니다. AI는 아주 넓은 개념으로, 데이터를 기반으로 문제를 해결하고, 학습하고, 적응하는 시스템을 포함합니다. AI는 규칙 기반 시스템부터 고급 알고리즘까지 포함하며, 자연어 처리, 컴퓨터 비전 등 다양한 분야에서 활용됩니다.

머신러닝 (ML, Machine Learning)
머신러닝은 AI의 하위 분야로, 컴퓨터가 명시적인 프로그래밍 없이도 데이터에서 패턴을 학습해 예측 또는 결정을 내리는 기술입니다. ML은 데이터로부터 학습하고, 성능을 개선하며, 주로 통계적 방법을 사용합니다. 대표적인 알고리즘으로는 선형 회귀, 의사결정 나무, k-최근접 이웃(KNN) 등이 있습니다.

딥러닝 (DL, Deep Learning)
딥러닝은 머신러닝의 하위 분야로, 다층 신경망(Neural Networks)을 사용하여 더 복잡한 패턴을 학습합니다. 특히 이미지, 음성, 자연어 처리 등에서 매우 강력한 성능을 보여주며, 데이터의 양이 많을수록 성능이 향상됩니다. DL 모델은 여러 계층의 신경망을 사용하여 데이터를 추상화하고, 사람의 개입 없이도 자동으로 중요한 특징을 추출해냅니다. 대표적으로 CNN(Convolutional Neural Networks), RNN(Recurrent Neural Networks)이 있습니다.

요약:
AI: 인공지능, 컴퓨터가 인간처럼 사고하고 행동하는 기술
ML: 머신러닝, 데이터로부터 학습하는 기술 (AI의 하위 분야)
DL: 딥러닝, 다층 신경망을 이용한 머신러닝 (ML의 하위 분야)
ML은 비교적 간단한 모델을 사용하며, DL은 대규모 데이터와 복잡한 신경망을 다룹니다.


CNN RNN GAN

CNN(Convolutional Neural Networks), RNN(Recurrent Neural Networks), 그리고 GAN(Generative Adversarial Networks)는 모두 딥러닝의 하위 분야에 속하며, 각각 다른 방식으로 데이터를 처리하고 학습합니다. 그 차이점을 설명하자면:

  1. CNN (Convolutional Neural Networks)
    주요 사용 분야: 이미지 처리 및 분석
    구조 및 원리: CNN은 이미지나 영상 같은 2차원 데이터를 처리하는 데 최적화된 구조입니다. 컨볼루션 레이어를 통해 이미지에서 중요한 특징(엣지, 색상, 패턴 등)을 추출하고, 이를 기반으로 학습합니다.
    특징:
    컨볼루션 필터를 사용하여 데이터를 국소적으로 처리하고, 이미지 내 중요한 패턴을 학습합니다.
    풀링(Pooling) 연산을 통해 데이터 크기를 줄이면서도 중요한 특징을 유지합니다.
    이미지 분류, 객체 탐지, 얼굴 인식 같은 문제에서 주로 사용됩니다.
  2. RNN (Recurrent Neural Networks)
    주요 사용 분야: 순차적 데이터 처리 (텍스트, 시간 시계열 데이터)
    구조 및 원리: RNN은 시간적 순서가 중요한 데이터를 처리하는 데 특화된 신경망입니다. RNN은 피드백 루프를 가지고 있어 이전의 출력이 다음 입력으로 연결되기 때문에, 시간 순서에 따른 패턴을 학습할 수 있습니다.
    특징:
    순차적 데이터 (예: 텍스트, 음성 데이터)를 처리하며, 과거 정보가 현재 데이터에 영향을 미칠 수 있도록 설계되었습니다.
    하지만 장기 의존성(long-term dependency) 문제로 인해, 긴 시퀀스에서는 성능이 저하될 수 있습니다. 이를 해결하기 위해 LSTM(Long Short-Term Memory)이나 GRU(Gated Recurrent Unit) 같은 변형된 RNN이 사용됩니다.
    자연어 처리(NLP), 음성 인식, 시계열 예측에서 주로 사용됩니다.
  3. GAN (Generative Adversarial Networks)
    주요 사용 분야: 데이터 생성 (이미지, 텍스트, 음성)
    구조 및 원리: GAN은 생성자(Generator)판별자(Discriminator)라는 두 신경망이 서로 경쟁하면서 학습하는 구조입니다. 생성자는 데이터를 생성하고, 판별자는 그 데이터가 진짜인지 가짜인지를 구분하는 역할을 합니다. 두 신경망이 경쟁하면서 생성자는 점점 더 진짜 같은 데이터를 만들 수 있게 됩니다.
    특징:
    GAN은 새로운 데이터를 생성하는 데 뛰어납니다. 예를 들어, 실제처럼 보이는 가짜 이미지나 텍스트를 생성할 수 있습니다.
    비지도 학습(unsupervised learning)의 대표적인 예로, 데이터의 레이블이 필요 없이 학습할 수 있습니다.
    이미지를 변환하거나, 새로운 예술 작품을 생성하는 등 창의적인 작업에 자주 사용됩니다.
    요약:
    CNN: 이미지와 같은 2D 데이터를 처리하며, 패턴과 특징을 추출하는 데 강점이 있음.
    RNN: 순차적 데이터 처리에 적합하며, 시간적 패턴을 학습할 수 있음. 주로 텍스트, 음성, 시계열 데이터를 처리.
    GAN: 생성자와 판별자가 경쟁하며 학습하는 구조로, 새로운 데이터를 생성하는 데 특화됨.
    이들 네트워크는 각각의 데이터 유형과 문제에 따라 최적화된 방식으로 사용됩니다.

머신러닝에는 다양한 학습 방식이 있으며, 그 중 대표적인 방법들이 지도학습, 비지도학습, 자기지도학습, 그리고 강화학습입니다. 각 방법은 데이터를 처리하고 학습하는 방식에 차이가 있습니다.

  1. 지도학습 (Supervised Learning)
    정의: 지도학습은 입력 데이터와 이에 대응하는 정답(레이블)을 사용하여 모델을 학습시키는 방법입니다.
    예시: 이미지 분류, 스팸 메일 필터링, 가격 예측 등
    원리: 모델은 입력과 레이블(출력) 쌍을 학습하여, 새로운 입력에 대해 적절한 출력을 예측합니다. 데이터에 명확한 정답이 있기 때문에, 모델의 성능을 측정하고 개선하는 것이 상대적으로 쉽습니다.
    주요 알고리즘: 선형 회귀, 의사결정나무, 랜덤 포레스트, SVM, 신경망 등

지도학습(Supervised Learning)에서 회귀(Regression)분류(Classification)는 데이터의 목표 변수(출력값)가 연속적인 값인지 아니면 이산적인 값인지에 따라 차이가 있습니다.

  1. 회귀 (Regression)
    정의: 회귀는 연속적인 값(수치형)을 예측하는 문제를 해결하는 방식입니다. 목표는 입력 데이터에 대해 숫자 범위 내에서 특정 값을 예측하는 것입니다.
    예시:
    주택 가격 예측 (평수, 위치, 방 개수 등을 입력으로 받아 집값을 예측)
    주식 가격 예측 (과거 데이터를 기반으로 미래의 주가를 예측)
    날씨 예측 (온도, 습도 등을 기반으로 기온 예측)
    주요 특징:
    목표 변수는 연속적입니다. 예를 들어, 5.3이나 100.4와 같은 소수점 값을 가질 수 있습니다.
    모델은 입력과 목표 변수 사이의 관계를 학습하여, 새로운 입력에 대해 적절한 연속 값을 예측합니다.
    주요 알고리즘:
    선형 회귀(Linear Regression)
    다항 회귀(Polynomial Regression)
    결정 트리 회귀(Decision Tree Regression)
    랜덤 포레스트 회귀(Random Forest Regression)
  2. 분류 (Classification)
    정의: 분류는 데이터를 이산적인 클래스 또는 범주형 값으로 나누는 문제를 해결합니다. 목표는 입력 데이터가 특정 클래스(카테고리)에 속하는지를 예측하는 것입니다.
    예시:
    스팸 이메일 분류 (이메일이 "스팸"인지 "정상"인지 분류)
    암 진단 (세포 데이터를 분석하여 암인지 아닌지 예측)
    손글씨 숫자 인식 (이미지 데이터를 숫자 0부터 9까지 분류)
    주요 특징:
    목표 변수는 이산적으로, 예를 들어 클래스 0, 1 또는 정상, 비정상 등으로 분류됩니다.
    2개의 클래스만 구분하는 이진 분류(binary classification) 문제와, 3개 이상의 클래스를 다루는 다중 분류(multi-class classification) 문제로 나뉩니다.
    주요 알고리즘:
    로지스틱 회귀(Logistic Regression)
    결정 트리(Classification Trees)
    서포트 벡터 머신(SVM)
    k-최근접 이웃(K-Nearest Neighbors, KNN)
    나이브 베이즈(Naive Bayes)
    회귀 vs. 분류 차이점
    특징 회귀(Regression) 분류(Classification)
    목표 변수(출력값) 연속적인 값 (예: 실수, 소수점) 이산적인 값 (예: 범주, 클래스)
    예시 주택 가격, 주식 가격, 온도 예측 스팸 여부, 암 진단, 숫자 인식
    주요 평가 지표 평균 제곱 오차(MSE), R² 점수 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 점수
    목표 수치형 값을 예측 데이터가 어떤 카테고리에 속하는지 분류
    알고리즘 선형 회귀, 다항 회귀, 랜덤 포레스트 회귀 로지스틱 회귀, 결정 트리, SVM, KNN
    요약:
    회귀는 연속적인 수치형 데이터를 예측할 때 사용되고, 분류는 데이터를 특정 범주나 클래스로 나누는 문제에 사용됩니다.
  1. 비지도학습 (Unsupervised Learning)
    정의: 비지도학습은 레이블 없이 주어진 데이터에서 패턴이나 구조를 찾는 방법입니다.
    예시: 군집화(클러스터링), 차원 축소, 이상 탐지 등
    원리: 데이터의 정답이 제공되지 않으므로, 모델은 데이터를 그룹화하거나 데이터를 요약하는 방식으로 학습합니다. 이는 데이터에 숨겨진 패턴을 찾아내거나 데이터를 시각화하는 데 유용합니다.
    주요 알고리즘: K-평균(K-means), 주성분 분석(PCA), 군집화 알고리즘, 오토인코더 등
  2. 자기지도학습 (Self-Supervised Learning)
    정의: 자기지도학습은 데이터의 일부를 레이블 없이 사용하여, 그 데이터를 자체적으로 레이블링하여 학습하는 방법입니다.
    예시: GPT, BERT 같은 자연어 처리 모델에서의 사전 학습
    원리: 자기지도학습은 비지도학습과 유사하지만, 데이터의 한 부분을 감추거나 변형하여 그 부분을 예측하게 함으로써 학습이 이루어집니다. 이 방식은 모델이 더 나은 표현을 학습하게 도와줍니다. 레이블이 필요 없는 상황에서 유용하며, 특히 딥러닝에서 많이 사용됩니다.
    주요 알고리즘: BERT, GPT 등 사전 학습된 모델
  3. 강화학습 (Reinforcement Learning)
    정의: 강화학습은 행동(Action)을 취하고, 그 결과에 대한 보상(Reward)을 받아 최적의 행동을 학습하는 방법입니다.
    예시: 게임 AI, 자율 주행 자동차, 로봇 제어
    원리: 에이전트는 환경과 상호작용하면서 행동을 선택하고, 그 행동의 결과로 보상을 받습니다. 에이전트는 보상을 극대화하는 방향으로 학습하며, 탐색과 활용의 균형을 맞춰가며 최적의 정책(policy)을 찾습니다.
    주요 알고리즘: Q-learning, SARSA, Deep Q-Networks(DQN), 정책 경사법(Policy Gradient) 등
    요약:
    지도학습: 정답(레이블)이 있는 데이터를 학습하여, 새로운 데이터에 대한 정확한 예측을 목표로 함.
    비지도학습: 정답이 없는 데이터를 학습하여, 패턴이나 구조를 발견함.
    자기지도학습: 레이블이 없는 데이터를 스스로 레이블링하여 학습하며, 큰 규모의 데이터에서 더 나은 표현 학습을 가능하게 함.
    강화학습: 환경과 상호작용하면서 보상을 최대화하는 방식으로 학습, 최적의 행동 전략을 찾음.

자기지도학습(Self-Supervised Learning)은 비지도학습의 한 형태로, 데이터를 사용하여 레이블을 스스로 생성하고, 이를 기반으로 모델을 학습시키는 방법입니다. 기존의 비지도학습과 달리, 자기지도학습은 명시적인 레이블 없이 데이터의 일부를 이용해 나머지를 예측하는 방식으로 학습을 진행합니다.

특징 및 원리:
데이터의 일부를 예측하는 방식: 자기지도학습은 데이터에서 어떤 힌트(특정 정보를 감추거나 변형)를 주고, 모델이 그 힌트로부터 원래의 데이터를 복원하거나 예측하는 과정을 통해 학습합니다. 이 과정을 통해 모델은 데이터의 구조와 중요한 특징을 학습하게 됩니다.

레이블 생성: 자기지도학습에서 모델은 레이블을 스스로 생성합니다. 일반적으로 레이블이 필요하지 않지만, 데이터를 가공하여 일부를 감춘 뒤(또는 다른 방식으로 변경한 후) 이를 예측하는 작업을 통해 레이블 역할을 하게 됩니다.

주요 사례:
언어 모델링:

NLP에서 자기지도학습이 활발히 사용됩니다. 예를 들어, GPT나 BERT 같은 언어 모델들은 문장이나 텍스트의 일부 단어를 감추고, 나머지 단어를 통해 감춰진 단어를 예측하는 방식으로 학습합니다. 이를 통해 모델은 자연어의 패턴과 문맥을 이해할 수 있게 됩니다.
마스크드 언어 모델링(Masked Language Modeling): BERT는 문장에서 일부 단어를 마스킹(masking)한 후, 그 마스킹된 단어를 예측하는 방식으로 학습됩니다.
컴퓨터 비전:

이미지 처리에서 자기지도학습을 사용하면 이미지의 일부를 숨기거나 왜곡한 뒤, 원래 이미지로 복원하는 작업을 통해 이미지의 패턴을 학습할 수 있습니다.
예를 들어, 컬러 이미지 복원에서는 흑백 이미지를 입력으로 넣고, 원래 컬러 이미지를 예측하게 하는 방식으로 학습합니다.
컨트라스티브 학습(Contrastive Learning):

자기지도학습의 또 다른 방법으로, 데이터의 양극적인 쌍을 이용해 학습하는 방법입니다. 예를 들어, 같은 이미지를 약간 변형한 두 버전을 모델에게 보여주고, 이 둘이 같은 데이터라는 사실을 학습하게 합니다. SimCLR나 MoCo 같은 모델들이 이 방식으로 학습합니다.
자기지도학습의 장점:
대규모의 데이터 활용: 자기지도학습은 레이블이 없는 데이터를 효과적으로 활용할 수 있습니다. 대규모 데이터셋에서 레이블을 생성하기 위한 수작업은 매우 비용이 많이 들기 때문에, 자기지도학습은 이 문제를 해결하는 좋은 방법입니다.
사전 학습(Pre-training): 자기지도학습은 많은 데이터를 사용해 사전 학습을 수행한 후, 이를 다른 작업에 전이 학습(transfer learning)할 수 있습니다. 특히 BERT나 GPT 같은 모델들은 자기지도학습을 통해 방대한 양의 데이터에서 패턴을 학습한 뒤, 다양한 자연어 처리 작업에 적용됩니다.
요약:
자기지도학습은 데이터에서 일부 정보를 숨기거나 변형하여, 그 정보로 나머지 데이터를 예측하는 방식으로 학습을 진행합니다. 이를 통해 대규모 비지도 데이터로부터 유의미한 표현을 학습하고, 다양한 작업에 사용할 수 있습니다. 특히 자연어 처리와 컴퓨터 비전 분야에서 많이 사용되며, 비지도 학습과 지도 학습의 중간 단계로 간주될 수 있습니다.


강화학습

강화학습(Reinforcement Learning)행동(Action)을 취하고, 그 행동의 결과로부터 보상(Reward)을 받아, 환경(Environment)과 상호작용하면서 최적의 행동을 학습하는 방법입니다. 이는 게임이나 로봇 제어와 같은 문제에서 자주 사용되며, 에이전트(Agent)가 스스로 경험을 통해 학습하면서 목표를 달성하는 방식입니다.

강화학습의 핵심 요소:
에이전트(Agent):

강화학습을 수행하는 주체로, 환경과 상호작용하면서 행동을 선택합니다. 에이전트는 환경으로부터 피드백을 받아 학습합니다.
환경(Environment):

에이전트가 상호작용하는 대상입니다. 에이전트가 행동을 취하면, 환경은 그에 대한 보상과 상태(State) 변화를 에이전트에게 전달합니다.
상태(State):

환경의 현재 상태를 나타냅니다. 에이전트는 이 상태를 바탕으로 다음 행동을 결정합니다.
행동(Action):

에이전트가 환경에서 취할 수 있는 선택지입니다. 에이전트는 상태를 기반으로 여러 가지 행동 중 하나를 선택합니다.
보상(Reward):

에이전트가 취한 행동에 대해 환경이 제공하는 피드백입니다. 보상은 양수(positive)나 음수(negative)일 수 있으며, 에이전트는 최대한 많은 보상을 얻기 위해 학습합니다.
정책(Policy):

에이전트가 어떤 상태에서 어떤 행동을 취할지 결정하는 전략입니다. 정책은 에이전트가 환경과 상호작용하면서 업데이트되며, 최적의 행동을 찾는 것이 목표입니다.
가치 함수(Value Function):

주어진 상태에서 장기적으로 얻을 수 있는 기대 보상을 나타냅니다. 에이전트는 가치 함수가 최대화되도록 행동을 결정합니다.
강화학습의 작동 원리:
에이전트는 현재 상태(State)를 인식하고, 그 상태에서 취할 수 있는 여러 가지 행동(Action) 중 하나를 선택합니다. 선택한 행동은 환경(Environment)에 영향을 미치며, 환경은 그에 따른 보상(Reward)과 새로운 상태를 에이전트에게 제공합니다.
에이전트는 이러한 과정을 반복하면서, 장기적으로 최대한 많은 보상을 얻는 방향으로 학습하게 됩니다. 이를 통해 에이전트는 환경에서 최적의 정책(Optimal Policy)을 찾아낼 수 있습니다.
강화학습의 학습 과정:
탐색(Exploration)활용(Exploitation)의 균형:
강화학습에서 에이전트는 최적의 정책을 찾기 위해 새로운 행동을 탐색(Exploration)할지, 아니면 이미 알고 있는 행동을 활용(Exploitation)할지 결정해야 합니다. 탐색은 새로운 지식을 얻기 위한 행동이고, 활용은 기존의 지식을 바탕으로 보상을 극대화하는 행동입니다.
주요 알고리즘:
Q-Learning:

상태와 행동의 쌍을 기반으로, 각 행동에 대한 Q-값(보상 기대치)을 학습합니다. 에이전트는 Q-값이 높은 행동을 선택하는 방식으로 최적의 정책을 학습합니다. Q-Learning은 환경의 모델 없이도 학습이 가능하여, 모델-프리(model-free) 방법이라고도 불립니다.
SARSA:

Q-Learning과 유사하지만, SARSA는 실제로 취한 행동에 따라 Q-값을 업데이트합니다. 이를 통해 정책에 따른 행동을 더 정확하게 반영할 수 있습니다.
Deep Q-Networks (DQN):

Q-Learning을 심층 신경망(Deep Neural Networks)을 이용해 확장한 방법입니다. Q-값을 추정하는 데 딥러닝을 사용하여, 복잡한 환경에서도 강화학습을 적용할 수 있습니다. 알파고와 같은 고급 AI 시스템에 적용됩니다.
정책 경사법(Policy Gradient):

Q-값을 학습하는 대신, 정책 자체를 직접 학습하는 방법입니다. 이 방법은 연속적인 행동 공간에서 강화학습을 가능하게 하며, Proximal Policy Optimization (PPO)과 같은 방법들이 이에 해당합니다.
강화학습의 활용 사례:
게임: 에이전트가 게임을 플레이하며, 최적의 전략을 학습합니다. 예를 들어, 알파고(AlphaGo)는 바둑 게임에서 강화학습을 통해 세계 최고의 실력을 갖추었습니다.
로봇 공학: 로봇이 환경에서 스스로 학습하면서 걷기, 물건 집기 등의 작업을 수행할 수 있습니다.
자율주행차: 차량이 주변 환경과 상호작용하며 최적의 경로를 학습하여, 안전하고 효율적으로 주행합니다.
추천 시스템: 사용자의 피드백을 기반으로 최적의 상품이나 콘텐츠를 추천하는 시스템에 활용됩니다.
강화학습의 장점:
자율성: 에이전트가 스스로 학습하고 환경에 적응하면서 최적의 행동을 학습할 수 있습니다.
보상 기반 학습: 명확한 목표(보상 극대화)가 주어져 있어, 다양한 상황에서 적응력을 발휘할 수 있습니다.
강화학습의 단점:
탐색 문제: 새로운 행동을 탐색하는 과정에서, 초기에는 비효율적인 행동을 많이 할 수 있습니다.
학습 속도: 복잡한 환경에서는 학습에 많은 시간과 계산 자원이 소모될 수 있습니다.
불안정성: 학습이 제대로 되지 않거나, 환경이 너무 복잡할 경우 학습이 불안정할 수 있습니다.
요약:
강화학습은 에이전트가 환경과 상호작용하며 보상을 극대화하는 방향으로 최적의 행동을 학습하는 방법입니다. 에이전트는 경험을 통해 정책을 개선하며, 다양한 분야에서 효율적으로 활용됩니다.


  1. 인공 신경망(Artificial Neural Network, ANN)

인공 신경망은 뇌의 신경망(neural network)을 모방한 모델로, 입력 데이터를 받아 다양한 가중치(weight)편향(bias)을 거쳐 출력을 생성하는 함수라고 할 수 있습니다. 이 과정에서 인공 신경망은 데이터의 패턴을 학습하여 예측이나 분류 작업을 수행하게 됩니다.

인공 신경망의 핵심 개념:
뉴런(Neuron): 인공 신경망의 기본 구성 요소로, 입력을 받아 특정 수학적 연산(주로 가중치 곱셈 및 편향 추가 후 활성화 함수 적용)을 수행하고 출력을 생성합니다.

레이어(Layer): 여러 뉴런이 모여 하나의 층(layer)을 이루며, 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성됩니다.

입력(input): 신경망이 학습하거나 예측을 수행하기 위해 받는 데이터입니다. 각 입력 값은 가중치와 함께 뉴런으로 전달됩니다.

  1. Weight(가중치)와 Bias(편향)
    Weight와 Bias는 인공 신경망에서 가장 중요한 두 개념으로, 신경망이 학습하는 주요 요소입니다.

2.1 Weight (가중치)
정의: 가중치는 입력 데이터가 뉴런에 전달될 때 얼마나 중요한지를 나타내는 값입니다. 각 입력 값과 연결된 가중치는 그 입력의 영향력을 조절합니다.
역할: 가중치는 입력에 대해 곱해진 후 뉴런에 전달되며, 그 값이 크면 입력 값이 더 중요한 것으로 간주되고, 작으면 중요도가 낮다고 해석됩니다.
직관적 이해: 가중치는 입력 데이터가 얼마나 중요한지 결정하는 필터와 같은 역할을 합니다. 예를 들어, 이미지 인식에서 특정 픽셀이 더 중요하게 여겨진다면 그 픽셀의 가중치는 더 크게 학습됩니다.
2.2 Bias (편향)
정의: 편향은 가중치가 곱해진 입력의 총합에 추가되는 상수 값입니다. 가중치가 입력의 중요도를 조절한다면, 편향은 신경망이 어느 정도의 기준치에서 출발할지 조정하는 역할을 합니다.
역할: 편향은 모델이 특정 출력 값을 더 쉽게 생성할 수 있도록 도와줍니다. 이는 신경망이 0에서만 시작하는 것이 아니라, 보다 유연하게 다양한 값을 예측할 수 있게 해줍니다.
직관적 이해: 편향은 모델이 학습할 때 출발점을 조정하는 값으로 생각할 수 있습니다. 즉, 특정 상황에서 출력이 조금 더 높거나 낮게 시작해야 할 경우, 편향 값이 그 조정을 담당합니다.
3. 인공 신경망은 함수다!
인공 신경망은 사실 하나의 복잡한 함수로 볼 수 있습니다. 이 함수는 입력 값을 받아 출력 값을 계산하는 일련의 연산을 수행하며, 가중치와 편향이 포함된 여러 수학적 연산을 통해 입력 데이터에서 학습된 패턴을 바탕으로 예측을 수행합니다.

수학적 표현: 인공 신경망에서 뉴런의 출력은 아래와 같은 수식으로 표현할 수 있습니다.

𝑦

𝑓
(
𝑊

𝑥

  • 𝑏
    )
    y=f(W⋅x+b)
    𝑊
    W: 가중치(weight) 매트릭스
    𝑥
    x: 입력 벡터
    𝑏
    b: 편향(bias)
    𝑓
    f: 활성화 함수 (Activation Function)
    이 수식에서 입력 데이터
    𝑥
    x는 가중치
    𝑊
    W와 곱해지고, 편향
    𝑏
    b가 더해집니다. 그 다음, 활성화 함수
    𝑓
    f를 통해 최종 출력 값
    𝑦
    y가 계산됩니다. 이 모든 과정은 입력 데이터를 변환하여 최종 출력(예측 값)을 생성하는 과정으로, 결국 하나의 함수라고 할 수 있습니다.
  1. 활성화 함수(Activation Function)
    인공 신경망에서 중요한 또 하나의 요소는 활성화 함수입니다. 이는 입력의 총합에 비선형성을 추가하여 신경망이 복잡한 문제를 풀 수 있게 만들어줍니다. 선형 함수만 사용하면 단순한 선형 관계만 학습하게 되기 때문에, 비선형 함수가 필요합니다.

대표적인 활성화 함수:
ReLU (Rectified Linear Unit): 주로 딥러닝에서 많이 사용되는 함수로, 양수인 경우는 그대로 출력하고, 음수인 경우는 0으로 출력합니다.
Sigmoid: 출력 값을 0과 1 사이로 제한하여, 확률 값을 나타내는 문제에서 많이 사용됩니다.
Tanh: 출력 값을 -1과 1 사이로 제한하며, Sigmoid와 유사하지만 출력 범위가 다릅니다.
요약:
인공 신경망은 하나의 함수로, 입력 데이터를 받아 가중치와 편향을 적용하여 예측 값을 출력합니다.
가중치(Weight)는 입력 데이터의 중요도를 결정하고, 편향(Bias)은 신경망의 출발점을 조정하여 더 유연하게 학습할 수 있게 합니다.
이 모든 과정은 수학적으로 표현 가능한 함수 연산을 통해 이루어지며, 활성화 함수는 비선형성을 추가하여 신경망이 더 복잡한 패턴을 학습할 수 있게 돕습니다.


선형 회귀(Linear Regression)는 연속형 데이터를 기반으로 두 변수 사이의 관계를 직선으로 모델링하는 방법입니다. 즉, 주어진 입력 데이터를 이용해 최적의 직선을 찾아내는 것이 목표입니다. 이때 직선의 방정식은 y = mx + b (또는 y = Wx + b) 형태로 표현됩니다. 선형 회귀는 두 가지 주요 형태로 나뉩니다: 단순 선형 회귀와 다중 선형 회귀.

  1. 선형 회귀의 개념
    선형 회귀의 목표는 입력 변수(독립 변수)와 출력 변수(종속 변수) 사이의 선형 관계를 모델링하는 것입니다. 이를 통해 우리는 미래의 데이터를 예측할 수 있습니다.

단순 선형 회귀(Simple Linear Regression):
입력 변수와 출력 변수가 각각 하나인 경우, 즉

𝑦

𝑤
𝑥

  • 𝑏
    y=wx+b 같은 형태로 예측 모델을 만듭니다.
    다중 선형 회귀(Multiple Linear Regression):
    하나 이상의 입력 변수를 사용하여 출력 값을 예측합니다. 즉, 여러 독립 변수
    𝑥
    1
    ,
    𝑥
    2
    ,

    ,
    𝑥
    𝑛
    x
    1

    ,x
    2

    ,…,x
    n

    과 하나의 종속 변수
    𝑦
    y 사이의 관계를 선형으로 나타냅니다.
    다중 선형 회귀는

    𝑦

    𝑤
    1
    𝑥
    1
  • 𝑤
    2
    𝑥
    2
  • 𝑤
    𝑛
    𝑥
    𝑛
  • 𝑏
    y=w
    1

    x
    1

    +w
    2

    x
    2

    +⋯+w
    n

    x
    n

    +b 형태로 나타냅니다.
  1. 선형 회귀의 수학적 모델
    선형 회귀에서 입력 변수
    𝑥
    x
    와 출력 변수
    𝑦
    y 사이의 관계는 아래와 같은 수식으로 표현됩니다:

𝑦

𝑊
𝑥

  • 𝑏
    y=Wx+b
    여기서:

𝑦
y: 예측값 (종속 변수)
𝑊
W: 가중치(weight), 기울기(slope) 또는 계수(coefficients)로도 불립니다.
𝑥
x: 입력 데이터 (독립 변수)
𝑏
b: 편향(bias) 또는 절편(intercept)이라고도 합니다.
3. 손실 함수(Loss Function)와 비용 함수(Cost Function)
선형 회귀 모델을 학습하는 과정에서 중요한 목표는 예측 값과 실제 값의 차이를 최소화하는 것입니다. 이 차이를 측정하는 기준이 손실 함수입니다.

오차(Error): 각 데이터 포인트에서 모델이 예측한 값과 실제 값의 차이

𝐸
𝑟
𝑟
𝑜

𝑟

𝑦
actual

𝑦
predicted
Error=y
actual

−y
predicted

손실 함수(Loss Function): 전체 데이터에서 모델의 성능을 평가하는 데 사용됩니다. 주로 평균 제곱 오차(Mean Squared Error, MSE)가 사용됩니다.

𝑀
𝑆

𝐸

1
𝑛

𝑖

1
𝑛
(
𝑦
𝑖

𝑦
𝑖
^
)
2
MSE=
n
1

i=1

n

(y
i


y
i

^

)
2

𝑦
𝑖
y
i

: 실제 값
𝑦
𝑖
^
y
i

^

: 예측 값
𝑛
n: 데이터의 개수
MSE는 예측 값과 실제 값의 차이(오차)를 제곱하여 전체 데이터에 대해 평균을 구하는 방식입니다. 오차의 제곱을 사용하면, 음수 오차가 상쇄되지 않고 더 큰 오차에 더 큰 페널티를 부여할 수 있습니다.

  1. 최적화: 경사 하강법(Gradient Descent)
    모델을 학습시키는 과정에서는 최적의 가중치(W)편향(b)을 찾아서 손실 함수를 최소화하는 것이 목표입니다. 이를 위해 많이 사용되는 알고리즘이 경사 하강법(Gradient Descent)입니다.

경사 하강법은 손실 함수의 기울기(경사)를 계산하여, 그 경사의 반대 방향으로 가중치와 편향을 조정함으로써 손실을 줄이는 방법입니다.

경사 하강법의 주요 단계:
가중치(W)와 편향(b)의 초기화: 일반적으로 임의의 값으로 시작합니다.
손실 함수의 기울기 계산: MSE와 같은 손실 함수에 대한 가중치와 편향의 기울기를 계산합니다.
가중치 W에 대한 미분:

𝑀
𝑆
𝐸

𝑊
∂W
∂MSE

편향 b에 대한 미분:

𝑀
𝑆
𝐸

𝑏
∂b
∂MSE

가중치와 편향 업데이트: 기울기의 반대 방향으로 가중치와 편향을 업데이트합니다.
𝑊

:

𝑊

𝛼


𝑀
𝑆
𝐸

𝑊
W:=W−α⋅
∂W
∂MSE

𝑏

:

𝑏

𝛼


𝑀
𝑆
𝐸

𝑏
b:=b−α⋅
∂b
∂MSE

여기서
𝛼
α는 학습률(learning rate)로, 한 번에 얼마나 많은 변화량을 적용할지 결정합니다.
반복: 손실 함수가 최소화될 때까지 반복적으로 기울기를 계산하고 업데이트합니다.
5. 선형 회귀의 학습 과정: Step by Step
Step 1: 데이터 준비
입력 데이터
𝑥
x와 대응하는 출력 데이터
𝑦
y가 주어져야 합니다. 이는 모델이 학습하는 데 필요한 훈련 데이터입니다.

Step 2: 모델 정의
모델은 아래와 같은 수식으로 정의됩니다:

𝑦

𝑊
𝑥

  • 𝑏
    y=Wx+b
    여기서
    𝑊
    W와
    𝑏
    b는 학습을 통해 찾아내야 하는 가중치와 편향입니다.

Step 3: 손실 함수 정의
손실 함수로 MSE(평균 제곱 오차)를 사용하여 모델의 예측과 실제 값의 차이를 평가합니다.

𝑀
𝑆

𝐸

1
𝑛

𝑖

1
𝑛
(
𝑦
𝑖

𝑦
𝑖
^
)
2
MSE=
n
1

i=1

n

(y
i


y
i

^

)
2

Step 4: 경사 하강법을 사용한 학습
경사 하강법을 통해 가중치(W)편향(b)를 업데이트하면서 손실 함수를 최소화합니다. 학습률
𝛼
α가 적절해야 경사 하강법이 효율적으로 작동합니다.

Step 5: 모델 평가
최종적으로 학습이 완료된 모델이 얼마나 잘 예측하는지 평가합니다. 일반적으로 평균 제곱 오차(MSE)나 R² (결정 계수) 같은 지표를 사용합니다.

  1. 선형 회귀의 가정
    선형 회귀 모델을 사용할 때는 다음과 같은 가정이 성립해야 합니다:

선형성(Linearity): 입력 변수와 출력 변수 사이의 관계는 선형적이어야 합니다.
독립성(Independence): 데이터 포인트 간의 독립성이 유지되어야 합니다.
등분산성(Homoscedasticity): 모든 데이터에서 오차의 분산이 동일해야 합니다.
정규성(Normality): 오차는 정규 분포를 따라야 합니다.
7. 선형 회귀의 장점과 단점
장점:
해석 용이성: 모델이 단순하고, 예측 결과를 해석하기 쉽습니다.
빠른 계산: 계산이 빠르며, 대규모 데이터에서도 효율적으로 작동합니다.
과적합 방지: 선형 회귀는 비교적 단순한 모델로, 과적합의 위험이 적습니다.
단점:
비선형 관계 모델링 불가능: 선형 회귀는 변수 간의 비선형 관계를 표현할 수 없습니다.
이상치에 민감함: 이상치(outlier)에 매우 민감하며, 이는 모델의 성능을 저하시킬 수 있습니다.
가정 위반에 취약함: 모델이 가정하는 조건(선형성, 등분산성 등)이 깨지면, 성능이 크게 떨어질 수 있습니다.
요약:
선형 회귀는 입력 변수와 출력 변수 사이의 선형 관계를 모델링하는 방법입니다.
모델의 목표는 가중치(W)편향(b)를 찾아내어 예측 오차를 최소화하는 것입니다.
경사 하강법을 통해 최적의 가중치와 편향을 찾아가는 과정에서 MSE와 같은 손실 함수를 최소화합니다.
선형 회귀는 간단하지만, 그만큼 비선형 관계나 복잡한 문제에서는 한계가 있습니다.


미니 배치 경사 하강법(Mini-Batch Gradient Descent)과 하이퍼파라미터 및 파라미터는 머신러닝 모델의 학습 및 최적화에서 중요한 개념입니다. 각 개념을 간단하게 설명하겠습니다.

  1. 미니 배치 경사 하강법 (Mini-Batch Gradient Descent)
    미니 배치 경사 하강법은 경사 하강법(Gradient Descent)의 변형으로, 전체 데이터셋을 작은 그룹(미니 배치)으로 나누어 각 그룹에 대해 기울기를 계산하고 가중치를 업데이트하는 방법입니다.

작동 방식:

데이터셋을 여러 개의 미니 배치로 나누기: 데이터셋을 작은 배치로 나누어 각 배치에 대해 기울기를 계산합니다.
미니 배치 단위로 기울기 계산 및 업데이트: 각 미니 배치에 대해 손실 함수의 기울기를 계산하고 가중치를 업데이트합니다.
반복: 모든 미니 배치에 대해 이 과정을 반복하며, 전체 데이터셋에 대한 최적화를 진행합니다.
장점:

계산 효율성: 전체 데이터셋을 한 번에 처리하지 않으므로 메모리 소모가 줄어들고 계산이 더 빠릅니다.
기울기 추정의 노이즈 완화: 전체 데이터셋보다 미니 배치의 기울기가 더 자주 업데이트되므로, 기울기 추정의 노이즈를 완화할 수 있습니다.
속도와 안정성: 미니 배치는 경량화된 업데이트를 제공하여 더 빠르게 학습할 수 있으며, 전체 데이터셋을 사용할 때보다 안정적인 최적화가 가능합니다.
단점:

미니 배치 크기 조정: 미니 배치 크기에 따라 학습 성능이 달라질 수 있으며, 적절한 크기를 찾는 것이 중요합니다.
2. 하이퍼파라미터 (Hyperparameter)
하이퍼파라미터는 모델 학습 과정 전에 설정해야 하는 파라미터입니다. 이러한 값들은 모델의 학습 과정에 영향을 미치며, 일반적으로 모델의 구조나 학습 설정을 정의합니다.

예시:
학습률(Learning Rate): 경사 하강법에서 가중치를 업데이트할 때 기울기의 크기를 조정하는 값입니다.
배치 크기(Batch Size): 한 번의 업데이트에 사용되는 데이터의 양입니다.
에포크 수(Epochs): 전체 데이터셋을 몇 번 반복해서 학습할 것인지에 대한 설정입니다.
정규화 계수(Regularization Coefficient): 모델의 과적합을 방지하기 위해 사용하는 값입니다.
하이퍼파라미터는 학습 과정 전에 설정되며, 모델 성능에 큰 영향을 미치기 때문에 튜닝이 필요합니다.

  1. 파라미터 (Parameter)
    파라미터는 모델이 학습 과정에서 조정하는 값으로, 모델의 가중치와 편향 등을 포함합니다.

예시:
가중치(Weights): 입력 데이터에 곱해지는 값으로, 각 입력의 중요도를 나타냅니다.
편향(Bias): 활성화 함수에 추가되는 값으로, 모델의 예측에 일정한 오프셋을 추가합니다.
파라미터는 모델이 학습하는 과정에서 최적화됩니다. 모델의 학습 과정 중에 경사 하강법 등의 알고리즘을 사용하여 파라미터 값을 조정하여 손실 함수를 최소화합니다.

요약
미니 배치 경사 하강법은 전체 데이터셋을 작은 배치로 나누어 기울기를 계산하고 가중치를 업데이트하는 방법으로, 효율적인 학습과 안정적인 최적화를 제공합니다.
하이퍼파라미터는 모델 학습 전에 설정하는 값으로, 모델의 구조나 학습 설정에 영향을 미칩니다.
파라미터는 모델 학습 과정에서 조정되는 값으로, 모델의 가중치와 편향 등을 포함하며, 최적화 알고리즘을 통해 업데이트됩니다.


  1. Moment vs RMSProp차이
    ChatGPT의 말:
    ChatGPT
    Momentum과 RMSProp은 모두 경사 하강법(Gradient Descent)을 향상시키기 위해 사용하는 최적화 기법입니다. 이들은 각각의 방식으로 기울기 기반의 최적화 과정에서 효율성을 개선합니다.

  2. Momentum
    Momentum은 경사 하강법의 기법으로, 이전 단계의 기울기를 고려하여 현재 단계의 업데이트를 조정합니다. 이를 통해 진동을 줄이고 더 빠른 수렴을 달성할 수 있습니다.

작동 방식:
속도 개념 도입: 이전 기울기의 방향을 기억하여 현재의 업데이트에 반영합니다. 이로써 기울기의 방향이 일관되면 업데이트가 가속화됩니다.
수식:
𝑣

𝑡

𝛽
𝑣
𝑡

1

  • (
    1

    𝛽
    )

    𝐿
    (
    𝜃
    )
    v
    t

    =βv
    t−1

    +(1−β)∇L(θ)

    𝜃

    𝜃

    𝛼
    𝑣
    𝑡
    θ=θ−αv
    t

여기서
𝑣
𝑡
v
t

는 모멘텀 벡터,
𝛽
β는 모멘텀의 감쇠 계수,

𝐿
(
𝜃
)
∇L(θ)는 손실 함수의 기울기,
𝛼
α는 학습률입니다.
장점: 기울기의 방향이 일관되면, 빠르게 최적점에 접근할 수 있으며, 미세한 진동을 줄여서 더 안정적으로 수렴할 수 있습니다.
단점: 적절한 모멘텀 계수(
𝛽
β)를 선택해야 하며, 기울기가 급격히 변화할 때 문제가 발생할 수 있습니다.
2. RMSProp
RMSProp(Root Mean Square Propagation)은 Adagrad의 문제점을 개선하기 위해 개발된 기법입니다. 이 방법은 기울기의 크기에 따라 학습률을 조정하여, 학습률의 감소 문제를 완화합니다.

작동 방식:
기울기의 제곱의 지수 이동 평균을 계산하여 각 파라미터의 학습률을 조정합니다. 이로써 파라미터의 기울기가 클 때 학습률을 감소시키고, 기울기가 작을 때 학습률을 증가시킵니다.
수식:
𝐸
[
𝑔
2
]

𝑡

𝛽
𝐸
[
𝑔
2
]
𝑡

1

  • (
    1

    𝛽
    )
    𝑔
    𝑡
    2
    E[g
    2
    ]
    t

    =βE[g
    2
    ]
    t−1

    +(1−β)g
    t
    2

𝜃

𝜃

𝛼
𝐸
[
𝑔
2
]
𝑡

  • 𝜖
    𝑔
    𝑡
    θ=θ−
    E[g
    2
    ]
    t



α

g
t

여기서
𝐸
[
𝑔
2
]
𝑡
E[g
2
]
t

는 기울기의 제곱의 지수 이동 평균,
𝛽
β는 감쇠 계수,
𝑔
𝑡
g
t

는 현재 기울기,
𝜖
ϵ는 안정성을 위한 작은 상수입니다.
장점: 각 파라미터의 기울기 크기에 따라 학습률을 조정하므로, 기울기가 크거나 작은 경우에도 안정적인 학습이 가능합니다. 특히 기울기 폭발 문제를 줄이는 데 효과적입니다.
단점: 하이퍼파라미터인
𝛽
β와
𝜖
ϵ을 적절히 설정해야 하며, 적절한 값이 아니라면 성능에 영향을 줄 수 있습니다.
요약
Momentum은 기울기의 이전 단계의 정보를 활용하여 현재 업데이트를 조정하고, 최적화 과정의 진동을 줄여줍니다. 기울기의 방향이 일관되면 학습 속도가 빨라지지만, 모멘텀 계수의 선택이 중요합니다.

RMSProp은 기울기의 제곱에 대한 지수 이동 평균을 사용하여 각 파라미터의 학습률을 조정합니다. 기울기가 큰 경우 학습률을 줄여주어 안정적인 학습을 돕습니다. 기울기의 크기에 따른 학습률 조정으로 기울기 폭발 문제를 완화할 수 있습니다.

각 기법은 모델 학습의 안정성과 속도를 개선하는 데 도움을 주며, 학습률 조정과 기울기 처리에 있어 서로 다른 접근 방식을 취합니다.

https://chatgpt.com/c/66e16d6e-5524-800c-b016-d466eb25c3b9

profile
프로젝트전에 해당 부분을 깊게 공부한것을 올려두는 벨로그

0개의 댓글