프로그래밍 공부

알고리즘 40

카테고리 설명
  • 대표적인 Regulazation 기법이다. 오버피팅(OverFitting)을 방지할 수 있도록 만들어주는 기법을 총칭해서 Regularization기법 이라고 부른다. 드롭아웃(Dropout)은 대표적인 Regularization 기법 중 하나이다. 드랍아웃 기법은 학습 과정에서 일부 노드를 사용하지 않는 형태로 만들어서오버 피팅(OverFitting) 을 방지할 수 있도록 만들어주는 Regularization기법이다.  학습할 때 범위를 랜덤하게 설정해서, 일부 노드를 덜어낸다 라고 이해하면 된다.이렇게 덜어냄으로써 일정부분만 학습하게 되면 트레이닝데이터 에서만 정확도가 높아지는걸 방지할 수 있다. TrainingData에 대해서는 오버피팅을 방지하기 위해서는 드랍아웃을 수행하지만, TestData에 ..

  • import tensorflow as tf# MNIST 데이터를 다운로드 합니다.(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()# 이미지들을 float32 데이터 타입으로 변경합니다.x_train, x_test = x_train.astype('float32'), x_test.astype('float32')# 28*28 형태의 이미지를 784차원으로 flattening 합니다.x_train, x_test = x_train.reshape([-1, 784]), x_test.reshape([-1, 784])# [0, 255] 사이의 값을 [0, 1]사이의 값으로 Normalize합니다.x_train, x_test = x_tra..

  • 컨볼루션 신경망(CNN) 컨볼루션 신경망은 이미지 분야를 다루기에 최적화된 구조이다. 컨볼루선 신경망은 크게 컨볼루션층(COnvolution Layer)과 풀링층(Polling[Subsampling])Layer로 구성된다.풀링은 서브샘플링 이라고 불린다. 컨볼루션 층에서 이루어지는 동작3x3커널을 이용해서 5x5크기의 이미지 행렬에 컨볼루션 연산을 수행하는 과정이다. 입력에 해당되는 커널의 값을 1만큼, 0이라면 0을 곱해서 나온 모든 결과를 더해서 출력위치에 넣어서 압축하는것이다. 원본이미지에 커널을 이용해서 컨볼루션을 수행하면 커널의 종류에 따라 원본 이미지의 특징들이 화설화 맵으로 추출되게 한다. 이때 어떤 커널을 사용하느냐에 따라 원본 이미지에서 다양한 특징을 추출할 수 있다.이미지 노이즈처리를 ..

  • 컴퓨터 비전, 즉 컴퓨터가 이미지를 인식하고 이해하는 과정은 여러 가지 어려움이 있다. 밝기 변화사진을 찍는 환경에 따라 이미지의 밝기가 달라질 수 있다.예를 들어, 같은 물체라도 낮에 찍은 사진과 밤에 찍은 사진은 매우 다르게 보일 수 있다.변형물체는 다양한 각도와 거리에서 찍힐 수 있습니다. 예를 들어, 고양이는 옆모습, 정면, 또는 뒤에서 찍힐 수 있으며, 이는 이미지 인식의 어려움을 가중시킨다. 배경 장애 물체와 배경이 복잡하게 섞여 있는 경우, 배경의 복잡함이 물체 인식을 방해할 수 있다.가림물체의 일부가 다른 물체에 의해 가려질 수 있다.예를 들어, 나무 뒤에 숨어 있는 고양이를 인식하는 것은 일부만 보이기 때문에 어려울 수 있다. 인트라클래스 바리에이션 같은 종류의 물체라도 형태가 다를 수 ..

  • import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# MNIST 데이터를 다운로드(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()x_train, x_test = x_train.astype('float32'), x_test.astype('float32')x_train, x_test = x_train.reshape([-1, 784]), x_test.reshape([-1, 784])x_train, x_test = x_train / 255., x_test / 255.learning_rate = 0.02training_epochs = 50 # 반..

  • 오토인코더 는 대표적인 비지도 학습을 위한 인공신경망 구조 중 하나이다.비지도 학습은 어떤값을 예측하거나 분류하는 목적인 지도학습 과 는 다르게 데이터의 숨겨진 구조를 발견하는 것이 목표인 학습방법 이다. 오토인코더의 구조오토인코더는 출력충의 노드 개수와 입력층의 노드 개수가 동일한 구조의 인공신경망이다. 오토인코더의 구조는 다음과 같이 나뉜다.입력층(Input Layer) 원본 데이터를 입력받는 층은닉층(Hidden Layer) 입력 데이터를 압축하여 중요한 특징만을 추출하는 층출력층(Output Layer) 원본 데이터를 재구축하는 층  오토인코더의 동작방식주요동작과정은 다음과 같다.입력데이터 재구축출력은 원본데이터를 재구축한 결과이다.예를들어 MNIST데이털르 재구축한 결과는 약간의 노이즈가 포함된..