728x90
반응형
SMALL
network 문제로 어제 학습한거 리뷰!!
x = np.array([[1.0,0.5]])
W1 = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])# A1을 계산하세요
B1 = np.array([[0.1,0.2,0.3]])
# A1을 계산하세요
# sigmoid함수를 적용하여 Z1을 구하세요
W2 = np.array([[0.1, 0.4 ], [0.2, 0.5], [0.3, 0.6]]) # (3, 2)
B2 = np.array([[0.1, 0.2]])
# A2 & sigmoid 함수를 적용하여 Z2를 구하세요
W3 = np.array([[0.1,0.3],[0.2,0.4]])
B3 = np.array([0.1,0.2])
# 항등함수 (입력 그대로 출력하기)를 이용하여 아웃풋 y를 구하세요
가 문제 였습니다.
그래서 코드는
model.compile(loss = 'sparse_categrical_crossentropy',optimizer, metrics)
손실 함수 (Loss Functions)
- ASE (Absolute Squared Error)
- 정의: 실제 값 (y_{\text{true}})와 예측 값 (y_{\text{predict}})의 차이를 제곱한 값.
- 수식:

- MSE (Mean Squared Error)
- 정의: ASE의 평균값으로, 예측 값과 실제 값의 차이를 제곱한 후 평균을 구한 값.
- 수식:

- CEE (Cross-Entropy Error)
- 정의: 분류 문제에서 주로 사용되며, 실제 값과 예측 값의 확률 분포 간의 차이를 측정.
- 수식:

학습의 목표
- 목표: 오차가 가장 적은 매개 변수의 값을 찾는 것. 모델의 예측 성능을 최적화.
지도 학습과 비지도 학습
- 지도 학습 (Supervised Learning): 정답(label)이 있는 데이터를 사용하여 학습.
- 예: MNIST 데이터셋에서 y_train, y_test로 정답을 받음.
- 비지도 학습 (Unsupervised Learning): 정답이 없는 데이터를 사용하여 학습.
- 데이터의 패턴이나 구조를 찾는 데 중점.
CNN (Convolutional Neural Network)
- 정의: 이미지 분류(image classification)에 주로 사용되는 신경망.
- 컨벌루션 (Convolution): 이미지의 특징을 추출하는 과정.
- 사용 방법: keras.layers.Conv2D()를 사용하여 구현.
- padding: 'valid’와 ‘same’ 옵션이 있으며, 'valid’는 패딩 없이, 'same’은 입력과 출력 크기를 동일하게 유지.
- strides: 필터를 적용할 때의 이동 간격.
패딩 (Padding)
- 정의: 이미지의 가장자리 픽셀을 처리하는 방법.
- corner pixel의 역할: 가장자리 픽셀의 정보가 적기 때문에 패딩을 통해 이를 보완.
- 계산식: (7-3+1) * (9-3+1)
이미지 분류와 객체 탐지(사람얼굴)
- 이미지 분류 (Image Classification): 이미지 내의 객체를 분류.
- 객체 탐지 (Object Detection): 이미지 내의 객체 위치를 사각형으로 제한.
- YOLO (You Only Look Once): 실시간 객체 탐지 알고리즘.
- COCO 데이터셋: 객체 탐지에 자주 사용되는 데이터셋.
미니 프로젝트(해보기)
- 목표: 없는 햄스터를 학습하여 찾기.(해보자...)
- 라벨: CIFAR-100 데이터셋을 사용.
세부 작업
- Classification: 분류 작업.
- Detection: 객체 탐지.
- Tracking: 객체의 위치 추적.
- Segmentation: 픽셀 단위로 객체를 분할.
Harr Cascade (얼굴 검출)


얼굴찾기 프로젝트
haar cascade git hub에서
haar cascade frontface default.xml 파일 다운로드
https://github.com/opencv/opencv/tree/master/data/haarcascades
opencv/data/haarcascades at master · opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.
github.com
Haar Cascade는 OpenCV에서 제공하는 얼굴 검출 방법 중 하나입니다
- Haar 특징 추출: 이미지에서 Haar 특징을 추출. Haar 특징은 이미지의 밝기 차이를 이용하여 객체를 구분.
- Cascade Classifier: 여러 단계의 분류기를 사용하여 점진적으로 얼굴을 검출. 각 단계는 이전 단계에서 검출된 영역을 더 세밀하게 분석.
- 얼굴 검출: 학습된 모델을 사용하여 입력 이미지에서 얼굴을 검출.
import cv2
face_cascade_path = 'haarcascade_frontalface_default.xml'
face_cascade = cv2.CascadeClassifier(face_cascade_path)
if face_cascade:
print("ok")
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces= face_cascade.detectMultiScale(frame_gray,scaleFactor= 1.1, minNeighbors=5, minSize=(30,30))
if cv2.waitKey(5) & 0xFF == ord('q'):
break
if len(faces)>0:
print("닝겐!")
cv2.imshow("FACE DETECTION", frame_gray)
cap.release()
cv2.destroyAllWindows()
뒤에 친구도 인식해버려따...
import cv2
face_cascade_path = 'haarcascade_frontalface_default.xml'
face_cascade = cv2.CascadeClassifier(face_cascade_path)
if face_cascade:
print("ok")
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 얼굴 찾기
faces = face_cascade.detectMultiScale(frame_gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
if len(faces) > 0:
# print("사람이다")
# print(faces)
x, y, w, h = faces[0]
# cv2.circle(frame, (y, x), 5, (0, 0, 255), -1)
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255,0), 5)
if cv2.waitKey(5) & 0xFF == ord('q'):
break
cv2.imshow("FACE DETECTION", frame)
cap.release()
cv2.destroyAllWindows()
728x90
반응형
LIST
'KG_KAIROS > DeepLearning' 카테고리의 다른 글
[DeepLearning] Transfer learning models, Kerras (0) | 2024.08.22 |
---|---|
[DeepLearing] Cancer 양성/음성 분류 모델 (0) | 2024.08.22 |
[DeepLearning] ReLU와 Softmax 그리고 NN single node (0) | 2024.08.19 |