딥러닝 개요
음성 인식, 이미지 식별 또는 예측 등 사람의 작업을 대신 수행하도록 컴퓨터를 학습시키는 일종의 머신러닝을 의미
딥러닝의 핵심 요소인 신경망은 이미 문자 언어를 처리하고 분석하는 데 사용
자연어 처리를 통해 텍스트 마이닝 기술은 고객의 불만 사항이나 진료기록, 뉴스, 보고서 등에서 특징적인 패턴을 발견하는 데 유용하게 사용
ANN(Artificial NeuralNetwork)
DNN(Deep Neural Networks)
CNN(Convolutional Deep Neural Networks)
RNN(Recurrent Neural Network)
DBN(Deep Belief Networks)
인공신경망(Artificial Neural Network)
ANN 문제점
- 첫째, 학습 과정에서 파라미터의 최적값을 찾기 어려움
- Overfitting에 따른 문제로 학습 시간이 너무 느림
ANN을 보완
심층 신경망(Deep Neural Network)
심층 신경망이란 입력층과 출력층 사이에 여러 개의 은닉층으로 이루어진 신경망을 의미
합성곱신경망(Convolutional Neural Network)
-합성곱 신경망은 시각적 영상을 분석하는 데 사용되는 다층의 피드-포워드적인 인공신경망의 한 종류
- 기존의 방식은 데이터에서 지식을 추출해 내고 이를 통해 학습이 이루어졌지만, CNN은 데이터의 특징을 추출하고 패턴을 파악하는 구조로 CNN 알고리즘은 Convolution 과정과 Pooling 과정을 통해 수행
- Convolution Layer와 Pooling Layer를 복합적으로 구성하여 알고리즘을 만듦
예제)
ChatGpt 를 이용한 CNN 신경망으로 그림판의 숫자 맞는지 확인
import numpy as np
from tensorflow.keras.preprocessing import image
# 이미지 불러오기
img_path = 'number.png' # 그림판에서 저장한 이미지 경로
img = image.load_img(img_path, target_size=(28, 28), color_mode="grayscale")
# 이미지 전처리
img = image.img_to_array(img)
img = np.expand_dims(img, axis=0)
img = img.astype('float32') / 255
# 모델 불러오기
model = tf.keras.models.load_model('mnist_cnn_model.h5')
# 예측
prediction = model.predict(img)
predicted_digit = np.argmax(prediction)
print(f"예측된 숫자: {predicted_digit}")
# 모델 저장 (Keras 형식)
model.save('mnist_cnn_model.keras')
3. 그림판에서 숫자 작성 후 맞는지 확인
이 부분에서는 사용자가 그림판에서 작성한 숫자를 모델이 맞출 수 있는지 확인하는 루틴을 구현합니다.
그림판에서 숫자 가져오기 및 예측
- 그림판에서 숫자 그리기:
- 숫자를 그림판에 그린 후, .png 형식으로 저장합니다.
- 예를 들어, "number.png"로 저장합니다.
- 이미지 불러와서 예측: Python에서 이미지를 불러와 CNN 모델을 통해 예측합니다.
import numpy as np
from tensorflow.keras.preprocessing import image
# 이미지 불러오기
img_path = '7.png' # 그림판에서 저장한 이미지 경로
img = image.load_img(img_path, target_size=(28, 28), color_mode="grayscale")
# 이미지 전처리
img = image.img_to_array(img)
img = np.expand_dims(img, axis=0)
img = img.astype('float32') / 255
# 모델 불러오기
model = tf.keras.models.load_model('mnist_cnn_model.h5')
# 예측
prediction = model.predict(img)
predicted_digit = np.argmax(prediction)
print(f"예측된 숫자: {predicted_digit}")
'딥러닝실무응용 > 딥러닝' 카테고리의 다른 글
[딥러닝] 사전 훈련된 모델 활용하기 (0) | 2024.08.26 |
---|---|
[딥러닝] 전이학습(transfer learning) 및 티쳐블 머신(Teachable Machine) 실무 (0) | 2024.08.23 |
[딥러닝] 합성곱신경망 코랩(Colab) 실습 (0) | 2024.08.23 |
[딥러닝] 합성곱신경망모델 (2) (0) | 2024.08.22 |
[딥러닝] 합성곱신경망모델(Convolution Neural Network) (0) | 2024.08.21 |