
2024.12.19
1. XOR 문제
2. IRIS데이터에 딥러닝 적용
3. 뉴럴넷(NN), 역전파 개념(뉴럴넷의 학습방법), 하용호님 자료참고

XOR 는 서로 같은 입력이면,
0, 서로 다른 때1
선형 모델 (직선)로는 XOR 문제를 풀 수 없다.
결국 하나의 직선으로는 데이터를 분류 할 수 없는 경우 어떻게 할 것인가에 대한 문제이다.
XOR은 "Exclusive OR"의 약자로, 두 개의 이진 입력에 대해 다음과 같은 출력을 반환하는 논리 연산
XOR 문제는 선형적으로 구분할 수 없는 문제입니다. 이는 입력을 선형 결정 경계로 나누어 분류할 수 없다는 것을 의미합니다. 그래서 XOR 문제는 단층 퍼셉트론(Perceptron)으로 해결할 수 없습니다. 이 문제를 해결하려면 다층 신경망(Multilayer Neural Network)이 필요합니다.

- 첫번째 줄에서 입력 2개 출력 2개 설정
- 두번째 줄은 굳이 입력(input_shape)이 몇개인지 미설정하여도 위에 출력값을 받아온다
두 개 직선의 계산 결과가 다시 직선이 되지 않도록, 함수를 적용해야 한다 = sigmoid 설정

Summary 확인
epochs는 지정 횟수만큼 학습을 하는 것batch_size는 한번의 학습에 사용될 데이터 수를 지정




기존 라벨값은 0, 1, 2 로 구성되어 있음.
에러를 계산한다고 했을때, 실제0인 데이터를1이나2로 잘못 예측할 수 있지만,2로 예측했다는 이유만으로1로 예측한것 보다 더 많은 에러가 있다는잘못된 학습이 진행될 수 있음.
One hot Encoding을 통해서 이 문제를 해결.
- 레이블 인코딩(각 범주에 숫자를 할당)과 달리, One-hot encoding은 각 범주를 독립적인 벡터로 변환하므로, 범주 간에 순서나 크기 정보가 없다는 점을 모델에 전달할 수 있습니다.
- 예: 레이블 인코딩으로 {Red: 0, Green: 1, Blue: 2}라면 모델이 "Blue > Green > Red"라고 잘못 해석할 가능성이 있습니다. One-hot encoding은 이를 방지합니다.


OneHotEncoding을 통해서 y값(라벨값) 형태변경 완료 ( 1, 0, 0 ), (0, 1, 0), (0, 0, 1) 형태

IRIS를 구성하는 망 설정

4개의
feature가 들어간다. 32가 세면 그리고 마지막에 3개.
위에 그림처럼 코드로 망(net) 구성

코드해설





학습 진행 (fit)







Vanishing Gradient 생긴다.그래서 아래의
ReLU등장


SoftMax를 출력값의 합을 1로 관리를 한다. 또한 가장 높은 값을 정답으로 본다.


다만 모든 데이터를 가지고 전체 에러를 계산하는건 시간이라는 문제가 생긴다. 너무 오래 걸린다.




