Python 딥 러 닝 의 권 적 신경 망 실현

1.권 적 신경 망
얀 레 쿤 과 요 슈 아 벤 지 오 는 1995 년 볼 륨 신경 망 을 도입 해 볼 륨 네트워크 나 CNN 이 라 고도 부른다.CNN 은 뚜렷 한 격자 형 토폴로지 가 있 는 데 이 터 를 처리 하 는 특수 한 다 층 신경 망 이다.그 네트워크 의 기 초 는 볼 륨 이 라 고 불 리 는 수학 연산 에 기초 하고 있다.
권 적 신경 망(CNN)의 유형
다음은 다양한 유형의 CNN 이다.
  • 1D CNN:1D CNN 의 입 출력 데 이 터 는 2 차원 이다.1 차원 CNN 은 대부분 시간 서열 에 사용 된다.
  • 2D CNNN:2D CNN 의 입 출력 데 이 터 는 3 차원 이다.우 리 는 보통 그것 을 이미지 데이터 문제 에 사용한다.
  • 3D CNNN:3D CNN 의 입 출력 데 이 터 는 4 차원 이다.보통 3D 이미지 에 3D CNN,예 를 들 어 MRI(자기 공명 영상)를 사용한다.CT 스 캔(갑 CT 스 캔 또는 컴퓨터 단층 스 캔(이전 에는 컴퓨터 축방향 단층 또는 CAT 스 캔 이 라 고 함)은 의학 이미 징 기술 에 사 용 된 방사 학 으로 비 침입 적 으로 상세 하 게 기술 한 신체 의 이미지 진단 을 위 한 목적 을 얻 었 다)과 다른 복잡 한 응용 프로그램의 DICOM 이미지(의학 디지털 이미 징)
  • 네트워크 구조
    다음은 CNN 의 서로 다른 층 의 네트워크 구조 이다.
  • 권 적 층
  • 지 화 층
  • 전 연결 층
  • CNN 구조의 완전한 개술

    3.볼 륨
    볼 륨 은 fg 이라는 두 함수 에 대한 수학 적 계산 으로 세 번 째 함수 (f * g) 을 얻 었 다.세 번 째 기능 은 하나의 형상 이 어떻게 다른 형상 에 의 해 수정 되 는 지 를 보 여 준다.그 수학 공식 은 다음 과 같다.
    h ( x , y ) = f ( x , y ) ∗ g ( x , y ) h(x,y)=f(x,y)*g(x,y) h(x,y)=f(x,y)∗g(x,y)
    卷积方程
    볼 륨 은 몇 가지 매우 중요 한 개념 이 있다.커버.

    그림 속 의 노란색 부분 은 커버 입 니 다.
    권 적 층
    볼 륨 층 은 CNN 의 핵심 빌 드 블록 이다.CNN 은 일부 권 적 층 과 다른 일부 층 의 신경 망 을 갖 추고 있다.볼 륨 층 은 볼 륨 연산 을 하 는 몇 개의 필 터 를 가지 고 있다.볼 륨 층 은 2 차원 입력 에 사용 되 는데 뛰어난 이미지 분류 작업 성능 으로 유명 하 다.이들 은 2 차원 입력 을 가 진 작은 핵 k 의 이산 볼 륨 을 바탕 으로 이 입력 은 다른 볼 륨 층 의 출력 이 될 수 있다.
    带滤波器的卷积层
    5.Keras 에 볼 륨 층 구축
    
    from keras.models import Sequential
    from keras.layers.convolutional import Conv2D
    model = Sequential()
    model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))
    
    위의 코드 구현 설명:
  • 출력 은 32 개의 특징 도 를 가지 게 될 것 이다.
  • 커 널 크기 는 3x3 입 니 다.
  • 입력 모양 은 32x 32 이 고 세 개의 채널 이 있 습 니 다.
  • padding = same。같은 사이즈 의 출력 이 필요 하 다 는 뜻 이다.
  • 지정 활성화 함 수 를 활성화 합 니 다.
  • 그 다음 에 서로 다른 매개 변수 값 을 사용 하여 볼 륨 층 을 구축 합 니 다.다음 과 같 습 니 다.
    6.연못 화 층
    지 화 층 의 기능 은 매개 변수의 수량 을 줄 이 고 네트워크 의 공간 크기 를 줄 이 는 것 이다.우 리 는 두 가지 방식 을 통 해 연못 화 를 실현 할 수 있다.
  • Max Pooling:직사각형 인접 지역 내 최대 출력 을 표시 합 니 다.Average Pooling:직사각형 인접 지역 의 평균 출력
  • 을 나타 낸다.
  • Max Pooling 과 Average Pooling 은 이미지 의 공간 크기 를 줄 이 고 더 적은 특징 과 파 라 메 터 를 제공 하여 계산 할 수 있 습 니 다.
  • 池化层中的输入和输出矩阵
    위의 그림 은 보폭 이 2 인 2X2 필 터 를 가 진 맥 스 풀 지 화 층 을 보 여 준다.
    Max Pooling和Average Pooling的区别
    Keras 에서 Max Pool 층 을 실현 합 니 다.다음 과 같 습 니 다.
    
    model.add(MaxPooling2D(pool_size =(2,2)))
    7.전체 연결 층
    전체 연결 층 은 최종 예측 한 모든 입력 과 가중치 의 합 계 를 확정 하고 마지막 합병 층 의 출력 을 대표 합 니 다.그것 은 한 층 의 모든 신경 원 을 다른 층 의 모든 신경 원 에 연결 시 켰 다.
    全连接层
    전 연결 층 의 주요 직책 은 분류 하 는 것 이다.이것 은 softmax 활성화 함수 와 함께 사용 하여 결 과 를 얻 을 수 있 습 니 다.
    여러 종류의 활성화 함수 에 사용 되 는 softmax 함수 입 니 다.이 함 수 는 0 과 1(총 1)의 확률 로 완전히 연 결 된 층 을 규범화 합 니 다.
    비 선형 함수"Softmax"를 가 진 Keras 코드 는 다음 과 같 습 니 다.
    
    model.add(Dense(10, activation='softmax'))
    8.Python 권 적 신경 망 실현
    환경 Google Colab
    필요 한 모든 라 이브 러 리 가 져 오기
    
    import numpy as np
    import pandas as pd
    from keras.optimizers import SGD
    from keras.datasets import cifar10
    from keras.models import Sequential
    from keras.utils import np_utils as utils
    from keras.layers import Dropout, Dense, Flatten
    from keras.layers.convolutional import Conv2D, MaxPooling2D
    
    cifar 10 데이터 불 러 오기:
    
    (X, y), (X_test, y_test) = cifar10.load_data()
    #      
    X,X_test = X.astype('float32')/ 255.0,X_test.astype('float32')/ 255.0
    
    분류 로 변환:
    
    y,y_test = utils.to_categorical(y,10),u.to_categorical(y_test,10)
    모델 초기 화:
    
    model = Sequential()
    다음 매개 변 수 를 사용 하여 볼 륨 층 을 추가 합 니 다:
  • Features map = 32
  • 커 널 크기=3x3
  • 입력 형태=32x 32
  • Channels = 3
  • Padding=3→입력 과 같은 사이즈 출력
  • 
    model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))
    # Dropout
    model.add(Dropout(0.2))
    #          padding ='valid'              
    model.add(Conv2D(32,(3,3),activation ='relu',padding ='valid'))
    #          
    model.add(MaxPooling2D(pool_size =(2,2)))
    #   
    model.add(Flatten())
    # Dense        521
    model.add(Dense(512, activation='relu'))
    # Dropout
    model.add(Dropout(0.3))
    #output 
    model.add(Dense(10, activation='softmax'))
    #           SGD
    model.compile(loss='categorical_crossentropy',             optimizer=SGD(momentum=0.5, decay=0.0004), metrics=['accuracy'])
    
    25 개의 epochs
    
    model.fit(X, y, validation_data=(X_test, y_test), epochs=25,          batch_size=512)

    9.총화
    권 적 신경 망 은 특수 한 다 층 신경 망 으로 주로 특징 을 추출 하 는 데 쓰 인 다.CNN 은 볼 륨 과 풀 링 이 라 고 불 리 는 두 동작 을 사용 하여 그림 을 기본 특징 으로 축소 하고 이러한 특징 을 사용 하여 현지 이해 와 분류 이미지 에 적합 하도록 한다.
    파 이 썬 딥 러 닝 의 권 적 신경 망 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 권 적 신경 망 을 실현 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기