본문 바로가기
카테고리 없음

딥러닝 - 넘파이(numpy), 브로드 캐스트(broad cast)

by jnhn 2023. 4. 25.

인공지능의 눈(cnn)

  1. 공항 검색대에 위반된 물품을 자동으로 감지하는 딥러닝 시스템 개발
  2. 공장에서 생산하고 있는 불량품을 감지하는 딥러닝 시스템 개발
  3. 얼굴 성형과 관련해서 쌍커플 수술 안한 사람의 얼굴을 쌍커플 수술 한 사람의 얼굴로 변환
  4. 병원에 환장 데이터(엑스레이, ct 사진) 을 이용해서 질병을 예측하는 딥러닝 시스템 개발
  5. 기타

인공지능의 입과 귀(rnn)

  1. 금융 데이터를 모아서 주가를 예측하는 딥러닝 시스템 개발(뱅크 셀러드)
  2. 상담원을 대신하는 인공지능 상담원을 개발
  3. 음성관련한 회사( 강아지와의 대화 : 펫펄스랩) 옥주현 ai
  4.  

머신 러닝 딥 러닝
숫자 데이터 사진 데이터
넘파이란? - numpy란 파이썬 언어에서 기본적으로 지원하지 않는 배열(array)혹은 행렬(matrix)의계산을 쉽게 해주는 라이브러리

신경망에서 데이터를 계산할때 행렬로 계산하는데 행렬계산을 아주 빠르고 쉽게 해주는 모듈이 numpy여서 넘파이 사용방법을 배웁니다.

※ 딥러닝을 배우는데 왜 numpy를 알아야하는가?

딥러닝 신경망이 학습할때 행렬계산을 해서 확률을 출력하는데 이 행렬계산을 빠르고 간편하게 해주는 파이썬 모듈이 numpy 입니다. 위와 같이 행렬곱 계산할대도 넘파이 이용하지 않으면 for loop 문 2번 사용해서 계산해야하는데 넘파이 이용하면 그냥 곱하면 됩니다.

브로드캐스트(broadcast): 넘파이가 제공하는 형상이 다른 배열끼리 계산할 수 있는 기능

 

import numpy as np
a = np.array([[1,2],[3,4]])
a+5
a*10

 

import numpy as np
c = np.array([1,2]).reshape(1,2)
d = np.array([1,3,5,4,3,2]).reshape(2,3)
print(np.dot(c,d))


## .reshape(n1,n2) :n1행 n2열 의 행렬을 만들 수 있음
##(np.dot(c,d)): 행렬 c와 d의 내적을 구함

 

귀가 삐죽삐죽한 고양이와 귀가 둥근 강아지를 구분할 수 있는 방법은...?

개가 0 고양이가 1이라고 했을때, 사진을 보고 고양이와 강아지를 구분할 수 있는 귀와 입에 대한 입력데이터가 들어가고 각강 해당되는 가중치를 부여해서 예측값을 계산함 사실 이때 예측값이 0.8이라고 나타났다면 1과 가까운 고양이 대신 오차가 1-0.8 = 0.2 라는 것을 알 수 있다.

넘파이의 N차원 배열

넘파이는 1차원 배열(1줄로 늘어선 배열) 뿐만 아니라 다차원 배열도 작성할 수 있다.

※ 다차원 배열을 쉽게 생성하고 쉽게 다룰수 있는 모듈이 numpy 모듈입니다. 넘파일 모듈을 이용하면 우리가 원하는 차수의 배열을 쉽게 만들 수 있다.

x = np.array([ [1, 2, 3, 4, 5], [2, 4, 3, 2, 4] , [ 3, 1, 4, 3, 1], [ 2, 7, 3, 4, 5], [1, 5, 6, 3, 1] ] )
#몇행 몇열인지 확인 x.shape #(5,5)
#몇 차원인지 확인 x.ndim #2 차원