프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 소프트맥스 회귀 기법 소프트맥스 회귀는 n개의 레이블을 분류하기 위한 가장 기본적인 모델이다. 모델의 아웃풋에 Softmax함수를 적용해서 모델의 출력값이 각각의 레이블에 대한 확신의 정도를 출력하도록 만들어주는 기법이다. 구체적으로 SoftMax함수는 Normalization함수로써 출력값들의 합을 1로 만들어준다. Softmax함수는 아래 수식으로 표현된다. $ softmax(X)_{i} = \frac{exp(x_{i})}{\sum_{j}exp(x_{j})} $ SoftMax함수를 마지막에 씌우게 되면 모델의 출력값이 레이블에 대한 확률을 나타나게 된다.(출력값들의 합이 1이되므로) 예를들어 SoftMax함수를 적용하게 되면,인풋에 대하여 각각의 레이블 확률을 0.7 , 0.2, 0.1 로 확신하게 ..

  • 범주형 값(Categrical Value)을 이진화된 값 으로 바꿔서 표현하는것 을 말한다. 범주형 값은 예를 들어 "개", "고양이", "말" 이런 3가지 범주형 데이터가 있을 떄, 이를 개 = 1, 고양이 = 2 말 = 3 이라고 단순하게 integer Encoding으로 변환하여 표현한다.이에 반해 One-hot Encoding을 사용하면 범주형 데이터를 개 = [1 0 0], 고양이 = [0 1 0], 말 = [0 0 1] 형태로 해당 레이블을 나타내는 인덱스만 1의 값을 가지고 나머지 부분은 0의 값을 가진 Binary Value로 표현한다. 단순한 InregerEncoding의 문제점은 머신러닝 알고리즘의 정수 값으로부터 잘못된 경향성을 학습하게 될 수도 있다.예를들어, Integer Enco..

    알고리즘

    One-hot Encoding NEW

    2024.06.13
    댓글
  • 머신러닝 모델을 학습시키기 위해서는 데이터가 필요하다.하지만 데이터 학습에 적합한 형태로 정제하는 것은 많은 시간과 노력이 필요한 일이다. 따라서 많은 연구자가 학습하기 쉬운 형태로 데이터들을 미리 정제해서 웹상에 공개해놓았다. 그중에서 MNIST데이터셋은 머신러닝을 공부하는 사람들이 접하는 데이터셋으로 머신러닝의 기초 라고 볼 수 있다.

    알고리즘

    MNIST 데이터셋 NEW

    2024.06.13
    댓글 1
  • 크로스 엔트로피(Cross-Entropy)분류 문제에는 크로스 엔트로피(Cross-Entropy)손실 함수를 많이 사용한다. 크로스 엔트로피 손실 함수도 평균제곱오차(MSE)와 같이 모델의 예측값이 참값과 비슷하면 작은값, 참값과 다르면 큰 값을 갖는 형태의 함수로 아래와 같은 수식으로 나타낼 수 있다. $ H_{y'}(y) = -\sum_{i}y'_{i}log(y_{i}) $ 위 수식에서 y'는 참값 y는 모델의 예측값을 나타낸다.일반적으로 분류 문제에 대해서는 MSE보다 크로스 엔트로피 함수를 사용하는 것이 학습이 더 잘되는 것 으로 알려져 있다. 따라서 대부분의 텐서플로 코드들에서 크로스 엔트로피 손실 함수를 사용한다.

  • 머신러닝은 크게 트레이닝 과정과 테스트 과정으로 나뉜다. 트레이닝 과정에서는 대량의 데이터와 충분한 시간을 들여 모델의 최적 파라미터를 찾는다. 테스트 과정에서는 트레이닝 과정에서 구한 최적의 파라미터로 구성한 모델을 트레이닝 과정에서 보지 못한 새로운 데이터에 적용해서 모델이 잘 학습되었는지 테스트하거나 실제 문제를 풀기 위해 사용한다. 보통 모델이 잘 학습되었는지 체크할 때는 테스트 실제 문제를 푸는 과정을 추론 이라고 부른다. 이렇게 트레이닝과 테스트를 수행하기 위해 가지고있는 데이터 중 일부는 트레이닝 데이터, 일부는 테스트 데이터로 나눈다. 여기서 더 나아가서 전체 데이터를 트레이닝 데이터, 검증용 데이터, 테스트 데이터 로 나누기도 한다. 검증용 데이터는 트레이닝 과정에서 학습에 사용하지는 않..

  • 오버피팅(Overfitting)트레이닝 에러와 검증 에러가 모두 작아지지만, 일정 횟수 이상 반복할 경우 트레이닝 에러는 작아지지만, 검증 에러는 커지는 오버피팅에 빠지게 된다. 따라서 트레이닝 에러는 작아지지만, 검증 에러는 커지는 지점에서 업데이틀르 중지하면 최적의 파라미터를 얻을 수 있다. 학습 과정에서 머신러닝 알고리즘의 파라미터가 트레이닝 데이터에 과도하게 최적화되어 트레이닝 데이터에 대해서는 잘 동작하지만, 새로운 데이터 테스트 데이터에 대해서는 잘 동작하지 못하는 현상을 말한다. 오버피팅은 모델의 표현력이 지나치게 강력할경우 발생하기 쉽다. 딥러닝의 경우 모델의 표현력이 강하기 때문에 오버피팅에 빠지기 쉽다. 따라서 오버피팅 문제를 완화하기 위해 드롭아웃과 같은 다양한 기법을 사용한다. 언더..

카테고리
작성일
2024. 6. 13. 20:46
작성자
WDmil
728x90

소프트맥스 회귀 기법

 

소프트맥스 회귀는 n개의 레이블을 분류하기 위한 가장 기본적인 모델이다.

 

모델의 아웃풋에 Softmax함수를 적용해서 모델의 출력값이 각각의 레이블에 대한 확신의 정도를 출력하도록 만들어주는 기법이다.

 

구체적으로 SoftMax함수는 Normalization함수로써 출력값들의 합을 1로 만들어준다. Softmax함수는 아래 수식으로 표현된다.

 

$ softmax(X)_{i} = \frac{exp(x_{i})}{\sum_{j}exp(x_{j})} $

 

SoftMax함수를 마지막에 씌우게 되면 모델의 출력값이 레이블에 대한 확률을 나타나게 된다.

(출력값들의 합이 1이되므로)

 

예를들어 SoftMax함수를 적용하게 되면,

인풋에 대하여 각각의 레이블 확률을 0.7 , 0.2, 0.1 로 확신하게 해석할 수 있다.

 

개와 고양이 말을 분류하는 분류기를 만들었다고 가정해보면, 인풋으로 들어온 Logits에 대해, 소프트맥스 회귀를 통과하게 되면, 인풋으로 들어온 이미지가 70% 확률로 개, 20%확률로 고양이 10%롹률로 말이라고 판단하도록 확인할 수 있다.

 

 

728x90

'알고리즘' 카테고리의 다른 글

인공신경망(Artificial Neural Networks[ANN])  (1) 2024.06.15
TensorFlow2.0으로 MNIST 숫자분류기 구현  (1) 2024.06.14
One-hot Encoding  (0) 2024.06.13
MNIST 데이터셋  (1) 2024.06.13
크로스 엔트로피(Cross-Entropy)  (0) 2024.06.13
카테고리
작성일
2024. 6. 13. 20:46
작성자
WDmil
728x90

범주형 값(Categrical Value)을 이진화된 값 으로 바꿔서 표현하는것 을 말한다.

 

범주형 값은 예를 들어 "개", "고양이", "말" 이런 3가지 범주형 데이터가 있을 떄, 이를 개 = 1, 고양이 = 2 말 = 3 이라고 단순하게 integer Encoding으로 변환하여 표현한다.



이에 반해 One-hot Encoding을 사용하면 범주형 데이터를 개 = [1 0 0], 고양이 = [0 1 0], 말 = [0 0 1] 형태로 해당 레이블을 나타내는 인덱스만 1의 값을 가지고 나머지 부분은 0의 값을 가진 Binary Value로 표현한다.

 

단순한 InregerEncoding의 문제점은 머신러닝 알고리즘의 정수 값으로부터 잘못된 경향성을 학습하게 될 수도 있다.

예를들어, Integer Encoding을 사용할경우 머신러닝 알고리즘이 개 = 1 말 = 3의 평균 = 2 로 고양이라고 학습할 수도 있기 떄문,

 

이에 따라 보통 알고리즘을 구현할 때 타겟 데이터를 One-Hot-Encoding형태로 벡터형태로 N차원으로 만들어 표현하게 된다.

 

 

728x90
카테고리
작성일
2024. 6. 13. 20:45
작성자
WDmil
728x90

머신러닝 모델을 학습시키기 위해서는 데이터가 필요하다.

하지만 데이터 학습에 적합한 형태로 정제하는 것은 많은 시간과 노력이 필요한 일이다. 따라서 많은 연구자가 학습하기 쉬운 형태로 데이터들을 미리 정제해서 웹상에 공개해놓았다.

 

그중에서 MNIST데이터셋은 머신러닝을 공부하는 사람들이 접하는 데이터셋으로 머신러닝의 기초 라고 볼 수 있다.

728x90

'알고리즘' 카테고리의 다른 글

소프트맥스 회귀(Softmax Regression)  (1) 2024.06.13
One-hot Encoding  (0) 2024.06.13
크로스 엔트로피(Cross-Entropy)  (0) 2024.06.13
Training Data, Validation Data, Test Data  (0) 2024.06.13
Overfitting 과 Underfitting  (0) 2024.06.13
카테고리
작성일
2024. 6. 13. 20:44
작성자
WDmil
728x90

크로스 엔트로피(Cross-Entropy)

분류 문제에는 크로스 엔트로피(Cross-Entropy)손실 함수를 많이 사용한다.

 

크로스 엔트로피 손실 함수도 평균제곱오차(MSE)와 같이 모델의 예측값이 참값과 비슷하면 작은값, 참값과 다르면 큰 값을 갖는 형태의 함수로 아래와 같은 수식으로 나타낼 수 있다.

 

$ H_{y'}(y) = -\sum_{i}y'_{i}log(y_{i}) $

 

위 수식에서 y'는 참값 y는 모델의 예측값을 나타낸다.

일반적으로 분류 문제에 대해서는 MSE보다 크로스 엔트로피 함수를 사용하는 것이 학습이 더 잘되는 것 으로 알려져 있다.

 

따라서 대부분의 텐서플로 코드들에서 크로스 엔트로피 손실 함수를 사용한다.

728x90
카테고리
작성일
2024. 6. 13. 20:27
작성자
WDmil
728x90

머신러닝은 크게 트레이닝 과정과 테스트 과정으로 나뉜다.

 

트레이닝 과정에서는 대량의 데이터와 충분한 시간을 들여 모델의 최적 파라미터를 찾는다.

 

테스트 과정에서는 트레이닝 과정에서 구한 최적의 파라미터로 구성한 모델을 트레이닝 과정에서 보지 못한 새로운 데이터에 적용해서 모델이 잘 학습되었는지 테스트하거나 실제 문제를 풀기 위해 사용한다.

 

보통 모델이 잘 학습되었는지 체크할 때는 테스트 실제 문제를 푸는 과정을 추론 이라고 부른다.

 

이렇게 트레이닝과 테스트를 수행하기 위해 가지고있는 데이터 중 일부는 트레이닝 데이터, 일부는 테스트 데이터로 나눈다.

 

여기서 더 나아가서 전체 데이터를 트레이닝 데이터, 검증용 데이터, 테스트 데이터 로 나누기도 한다.

 

검증용 데이터는 트레이닝 과정에서 학습에 사용하지는 않지만 중간중간 테스트하는데 사용해서 학습하고 있는 모델이 오버피팅에 빠지지 않았는지 체크하는데 사용된다.

 

즉, 직관적으로 설명하면 검증용 데이터는 트레이닝 과정 중간에 사용하는 테스트 데이터로 볼 수 있다.

728x90
카테고리
작성일
2024. 6. 13. 20:27
작성자
WDmil
728x90

오버피팅(Overfitting)

트레이닝 에러와 검증 에러가 모두 작아지지만, 일정 횟수 이상 반복할 경우 트레이닝 에러는 작아지지만, 검증 에러는 커지는 오버피팅에 빠지게 된다.

 

따라서 트레이닝 에러는 작아지지만, 검증 에러는 커지는 지점에서 업데이틀르 중지하면 최적의 파라미터를 얻을 수 있다.

 

회색선 위치가 최적의 파라미터 일것이다.

학습 과정에서 머신러닝 알고리즘의 파라미터가 트레이닝 데이터에 과도하게 최적화되어 트레이닝 데이터에 대해서는 잘 동작하지만, 새로운 데이터 테스트 데이터에 대해서는 잘 동작하지 못하는 현상을 말한다.

 

오버피팅은 모델의 표현력이 지나치게 강력할경우 발생하기 쉽다.

 

딥러닝의 경우 모델의 표현력이 강하기 때문에 오버피팅에 빠지기 쉽다.

 

따라서 오버피팅 문제를 완화하기 위해 드롭아웃과 같은 다양한 기법을 사용한다.

 

언더피팅(Underfitting)

의 경우, 오버피팅의 반대 상황으로 모델의 표현력이 부족해서 트레이닝 데이터 또한 제대로 예측하지 못하는 상황을 말한다.

728x90