RangA 2023. 6. 1. 23:28

03. 신기술 동향

04. 딥 러닝(Deep Learning)

1) 컴퓨터 처리 방식

  • 기존의 컴퓨터 처리는 인간이 미리 처리 방식으로 알려주고, 입력에 대한 결과를 얻는 방식
  • 데이터를 입력하면 미리 정해준 연산 순서에 따라 연산하여 결과를 출력해줌

2) 머신 러닝(Machine Learning)

  • 입력 데이터와 처리된 결과만을 알려줌
  • 머신 러닝은 처리 방식을 미리 알려주지 않고, 입력에 관한 결과의 데이터를 알려 주고, 그 처리 방식을 스스로 알게 하는 방식

3) 일반 신경망

  • 일반 신경망은 원시 데이터에서 직접 추출하여 만든 특징 벡터를 입력으로 사용함
  • 특징 벡터를 갖는 많은 데이터를 입력할수록 결과가 좋아짐
  • 원시 데이터의 변화에 취약함

4) 심층 신경망(딥 러닝)

  • 심층 신경망을 딥 러닝, 심층 학습망이라고도 함
  • 원시 데이터의 특징 추출과 학습을 함께 수행함
  • 원시 데이터로부터 효과적인 특징을 학습을 통해 추출하기 때문에 성능이 우수함
  • 다수의 은닉층을 사용함
  1. 순환 신경망(RNN : Recurrent Neural Network)
    • 흐름에 따라 변화하는 데이터(시계열 데이터)를 학습하기 위한 방법
  2. 합성곱 신경망(CNN : Convolutional Neural Network)
    • 필터링 기법을 인공 신경망에 적용함으로써 이미지와 같은 2차원 데이터 처리를 더욱 효과적으로 처리하기 위한 방법
  3. 생성적 적대 신경망(GAN : Generative Adversarial Network)
    • 적대적 관계인 두 개의 신경망인 생성자, 식별자를 구성함
    • 생성자는 진품을 학습하여 복사품을 생성함
    • 식별자는 복사품이 진품인지 판별함
    • 적대적 관계인 생성자와 식별자는 위 작업을 경쟁하듯이 반복하여 진품에 가까운 복사품을 만들어 내는 방법

5) 합성곱 신경망(CNN : Convolutional Nearal Network)

  • 합성곱 신경망은 다층 신경망의 한 모델
  • 일반 신경망의 문제점인 이미지의 위치, 크기, 각도 변화를 극복할 수 있음
  • 합성곱 신경망은 인간의 뇌 신경 세포처럼 위치, 크기, 각도가 변경되더라도 문제 없이 인식할 수 있게 하는 것이 최종 목표
  • 합성곱 신경망은 물체의 위치와 방향과 관계없이 물체 고유한 특성을 학습할 수 있음
  • 텐서플로우를 사용할 때 인공 지능 소프트웨어가 이미지 및 음성을 인식하기 위해서는 신경망의 합성곱 신경망 모델을 주로 사용함
  • 영상이나 이미지 문자 인식에 높은 성능을 나타냄
  • 일반 신경망보다 용량이 많이 사용되고 속도가 느림
  • 특징을 추출한 후, 특징을 분류하여 출력함
  • 컴볼루션층과 폴링층이 반복되어 진행됨
  • 컴볼루션 층(Convolutional Layer)
    • 입력 이미지나 영상에서 위치나 각도와 상관없이 다수의 동일한 특징을 검색함
    • 입력 대상을 부분적으로 구분하여 행렬의 원소를 만듦
    • 입력 대상의 행렬과 가중치 행렬(필터)의 합성곱 연산을 통하여 출력 데이터는 만들어 냄
    • 출력 데이터를 벡터 테이블에 보관하였다가 사용함
    • 새로운 입력 대상과 보관된 벡터 테이블과 비교하여 판별함
  • 폴링 층(Pooling Layer)
    • 입력 이미지 영상의 위치나 각도 변화와 왜곡에 대처함
    • 입력 대상을 부분적으로 구분하여 행렬의 원소로 만듦
    • 만들어진 행렬에서 일부분 원소 중 가장 큰 값을 원소로 하는 행렬을 만듦
    • 최종적으로 만들어진 행렬과 새로운 입력 대상과 비교하여 판별함
  • 합성곱 신경망은 연필로 쓴 글씨가 숫자가 뒤집혀 있든, 왜곡이 되어 있든 정확히 인식할 수 있음



05. 텐서플로우(TensorFlow)

1) 텐서플로우

  • 구글에서 개발해서 공개한 인공 지능 응용 프로그램 개발용 오픈소스 프레임워크
  • 텐서플로우는 머신 러닝이나 딥 러닝에 관련한 라이브러리를 지원하므로 인공 지능 개발을 쉽게 할 수 있음
  • C++, Java 등의 다양한 언어를 사용할 수도 있지만 Python에 최적화되어 있음
  • Python은 아나콘다 배포판으로 다운받아 Python pip를 이용하여 텐서플로우를 설치, 사용할 수 있음

2) 텐서(Tensor)의 정의

  • 수학적으로는 스칼라와 벡터를 말하며 다차원 배열로 나타낼 수 있는 수치
  • 인공 지능에서의 텐서는 스칼라와 벡터뿐만 아니라 matrix, 3 tensor type, ..., n tensor type 모두를 텐서라고 함
  • 인공 지능에서 사용하는 모든 데이터를 일반적으로 텐서라고 함