이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

Computer Science/Machine Learning

  • 천천히 꾸준히 조용히
[ML] Dimensionality Reduction

[ML] Dimensionality Reduction

2025.12.08
차원이 늘어날수록 공간은 기하급수적으로 커진다. 데이터는 한정되어 있는데, 공간만 넓어지면 데이터 사이의 거리가 멀어진다.텅 빈 고차원 공간을 제대로 설명하기 위해 더 많은 입력 데이터가 필요함. (Feature n개 == n차원) Feature 수가 늘어날수록 Classifier의 성능이 올라갈 수 있음. 정보가 많아지니까~하지만, Optimal Point를 지나면 오히려 성능이 급격히 떨어진다. 정답을 맞추는데 필요 없는 데이터가 섞이고, 같은 정보를 담은 변수가 여러 개 생기고, Overfitting이 발생하고 오버헤드가 커지기 때문. 모든 Feature가 독립적이라면, Feature가 많을수록 성능이 좋아야 한다.그런데 현실의 데이터에서 모든 Feature가 독립적인건 절대 불가능하고, 데이터에 ..
[ML] Kernel Method

[ML] Kernel Method

2025.12.07
Deep Neural Network나 Decision Tree를 학습시킬 때, Empirical Risk Minimization을 목표로 했음.훈련 데이터 (Empirical) 에 대한 에러 (Risk) 를 최소화 하는 것. Neural Network에서는 정답값과 예측값의 차이를 최소화 하기 위해 가중치를 조정했고,Decision Tree에서는 데이터의 엔트로피를 줄이는 방향으로 가지를 쳤다. 다만, 훈련 데이터에만 너무 집착하다 보면 Overfitting이 발생한다. Validation과 Regularization을 사용함. 두 클래스를 구분하는 선을 긋는다고 하자. 사실 Solution1과 Solution2 모두 잘 구분하긴 함.ERM 관점으로는 완벽한 분류임. 근데 새로운 데이터가 들어온..
[ML] Deep Neural Networks

[ML] Deep Neural Networks

2025.12.06
그냥 말 그대로 깊이가 다르다. Simple Neural Network는 Input Layer와 Output Layer 사이에 있는 Hidden Layer가 적거나 하나밖에 없는 구조고, Deep Neural Network는 Hidden Layer가 많이 배치된 구조. 이렇게 층이 깊어질수록 네트워크는 더 복잡한 문제를 해결할 수 있음. 신경망을 설계할 때 가장 중요한게 모델의 Capacity. 클 수록 더 복잡한 패턴을 학습할 수 있다. Hidden Layer에 있는 Neuron의 수를 늘리면 Width가 늘어나고, Capacity도 늘어난다.Universial Approximation Theorem에 따르면 은닉층이 하나만 있어도 Neuron이 충분히 많다면 어떤 함수든 근사할 수 있지만.. 비효율적..
[ML] Neural Networks

[ML] Neural Networks

2025.12.06
인간의 뇌가 작동하는 방식을 모방한 수학적 모델을 Neural Networks 라고 부름.데이터들이 가중치를 가진 네트워크 형태로 연결되어있고, 들어오는 신호가 강할 때만 해당 노드가 활성화되고 신호를 전달함. 가장 기초적인 역할은 데이터를 분류하는 것. 그냥 지금까지 한 것 처럼 Linear Function으로 공간을 두 개로 나누는거랑 똑같음. 기하 관점에서는 그래프그리는거고, 대수 관점은 g(x) > 0 이면 Class 1, g(x) 대수 관점에서 수식을 세워두면, 네트워크 형태로 표현할 때 입력값에 가중치를 곱해서 더하는 구조가 된다. Multivariate 문제로 일반화하면, 신경망의 구조가 명확해진다. 1. Inputs, Weightsx0, x1.. 입력변수들이 들어온다. x0..
[ML] Ensemble Method

[ML] Ensemble Method

2025.12.05
모델을 하나만 써서 예측하는 것 보다, 여러 모델을 만들어 각각 예측하게 하고 결과를 종합해서 최종 결론을 내리게 하는 방법이다. Bias - 정답 값과 예측값의 차이. 높을수록 모델이 단순해서 패턴을 제대로 학습하지 않았음을 의미한다.Variance - 예측값들의 흩어진 정도. 높을수록 모델이 너무 복잡해서 학습 데이터에 강하게 반응함을 의미한다. (LaTex 하나하나 적기 너무 힘드니 이미지로...) 전체 에러인 MSE는 Variance와 Bias의 제곱의 합으로 분해된다. 즉, 좋은 모델을 만드려면 저 두 가지를 동시에 줄여야 함. Capacity가 증가할수록 Bias는 줄어드는데, Variance는 커진다.그러니 최적의 선을 찾아야 함. 저 둘을 합친 Generalization Er..
[ML] Decision Tree

[ML] Decision Tree

2025.10.18
if-then 규칙으로 트리를 구성하고 이 트리를 바탕으로 분류를 수행한다. - Classification루트 노드는 전체 데이터를 처음 분할하는 노드, 내부 노드는 특정 기준으로 데이터를 나누는 조건, 리프 노드는 최종 예측 결과가 저장되는 위치이다. 규칙을 정하는게 매우 중요하다. 입력 데이터의 특정 포인트를 기준으로 잘라내고, 이 포인트는 impurity가 낮아야 한다. (misclassification) impurity를 측정할 때는 Entropy, Variance, Gini Index, Misclassification 등 여러 방법을 사용한다. 각 방법들을 좌표평면에 표현하면 저렇게 나온다.Misclassification은 분할했을 때 impurity가 개선되지 않는다는 문제가 있는데.. ..
[ML] Nearest Neighbor Method

[ML] Nearest Neighbor Method

2025.10.18
데이터의 유사도로 Classification을 수행한다. 그냥 말 그대로 거리를 기준으로 분류하는 알고리즘. 일단 데이터를 좌표평면에 다 찍어두면 뭔가 Cluster를 이루는걸 확인할 수 있다. 비슷한것들끼리 하나로 묶어서 분류한다. 일단 거리를 정의해야 한다. Manhattan Distance 백준 풀면 맨날 나오는 그 거리 계산법이다. 각 변수에서 절댓값 차이 합을 의미함.수식은 latex 쓰면 참 좋은데 너무 귀찮다;; 이미지로 첨부. Minkowski Distance 에서 k=1 Euclidian Distance고등수학에서 점과 점 사이의 거리를 구할 때 사용하는 공식이다. Minkowski Distance 에서 k=2 Manhalanobis Distance유킬리드 거리는 모든 방향으로 ..
[ML] Logistic Regression

[ML] Logistic Regression

2025.10.17
Linear Regression과 매우 유사하지만 output이 수치가 아니라 클래스이다.Linear Regression은 Least Square Estimation을 사용하지만 Logistic Regression은 Maximum Likelihood Estimation 사용. Feature를 선형결합하는건 맞는데, 그 값을 확률로 바꾸기 위해 Sigmoid 함수를 사용한다.값이 확률이 됐으니 그 확률이 미리 정해둔 임계값과 비교해서 지금 들어온 input이 어떤 클래스인지 분류한다. 일단 선형함수는 음의 무한에서 양의 무한까지의 값을 가질 수 있으니, 이걸 0~1 사이의 확률로 바꿔야 한다.이 때 사용하는 변환 함수는 Monotonic Increasing 성질을 만족해야 하는데, 그 함수 중 하나가 Si..
[ML] Regression

[ML] Regression

2025.10.17
Bayesian Classifier가 분류 문제를 담당했다면 Regression은 예측을 담당한다. (둘 다 Supervised Learning)즉, 결과가 이산적인지 연속적인지의 차이다. Linear Regression입력 변수 x와 출력 변수 y사이의 선형 관계를 찾아낸다. $$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_d X_d$$다변량 선형 회귀로 입력차원이 d인 경우로 d개의 독립변수와 d개의 기울기를 가진다. $$\hat{Y} = \hat{\beta}_0 + \hat{\beta}_1 X_1 + \hat{\beta}_2 X_2 + \cdots + \hat{\beta}_d X_d$$ 실제 데이터가 주어지면 각 변수의 기울기에 대한..
Pytorch Lightning

Pytorch Lightning

2022.03.26
Pytorch Lightning은 Pytorch보다 더 높은 수준의 추상화를 지원해 구조화된 코드를 작성할 수 있도록 한다. PL의 코드 스타일에 대해 살펴보자. 먼저 클래스(모델)를 선언한 다음, init함수에서 신경망 모델의 layer, 활성함수 등을 선언하고 forward에서는 이미 만든 layer를 활용해 모델을 구축한다. 그 다음 데이터를 준비한다. prepare_data함수에서 데이터를 입력받은 다음 텐서로 변환하고, 변환된 텐서에 대해 학습 / 검증 / 시험 단계를 거친다. 다음으로는 옵티마이저를 준비한 다음, 오차함수를 준비한다. 입력한 데이터를 최적화하는 과정이다. 즉, 학습 검증 평가 모드를 함수단위로 분할해서 진행한다. 각각의 단계를 자세히 살펴보자. epoch_end부분의 리턴타입은..
Pytorch / Tensorflow - 차원

Pytorch / Tensorflow - 차원

2022.03.18
설치 파이토치와 텐서플로우를 설치할 때, 각자 다른 가상환경에 따로 설치하는 편이 좋다. 같은 가상환경에 설치해도 둘은 다른 라이브러리이기에 충돌이 발생하지는 않지만, 하나의 가상환경에 여러 개의 프로젝트를 작업할 경우 무슨 프로젝트에 무슨 라이브러리가 필요한지 알기 어렵게 될 수 있다. 즉, 파이토치를 사용하는 프로젝트는 파이토치 가상환경에서, 텐서플로우를 사용하는 프로젝트는 텐서플로우 가상환경에서.. 이런 방식으로 사용하는게 합리적이다. 차원 2차원 텐서의 경우 행과 열로 표현될 수 있어 행렬로 이해할 수 있다. 이미지 데이터는 (가로, 세로, 색상)으로 총 3차원으로 표현되는데, 여기서 이미지 데이터 batch를 활용하게 되면 (이미지 데이터, 가로, 세로, 색상)으로 4차원의 형태가 된다. 차원이..
Pytorch - Tensor

Pytorch - Tensor

2022.03.16
정의 다차원 배열을 의미하며, Numpy에서의 Array와 유사하다. 연산 속도를 극대화하기 위해 GPU연산을 지원한다. 이 때 그래픽카드가 없으면 CPU모드로 설치할 수 있는데, 이런 경우 GPU연산은 지원되지 않지만, 더 많은 딥러닝 연산 함수가 지원되는 tensor객체를 사용하기 위해 파이토치를 사용하기도 한다. x = torch.zeros(5, 3) print(x) print(x.shape) """ tensor([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]) 행렬의 원소를 0으로 하고 출력한다 torch.Size([5, 3]) 5행 3열 크기의 행렬 """ 2차원 텐서 뿐만 아니라 3차원 N차원까지 존재하며, torc..
  • 최신
    • 1
    • 2
    • 3
    • 4
  • 다음

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (655)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (133)
      • Machine Learning (37)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (8)
      • Computer Security (8)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (16)
    • 💬 기록 (10)
    • 📝 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바