Keras-딥 러닝 개요

딥 러닝은 기계 학습의 진화하는 하위 분야입니다. 딥 러닝은 입력을 레이어별로 분석하는 것을 포함하며, 각 레이어는 입력에 대한 더 높은 수준의 정보를 점진적으로 추출합니다.

이미지를 분석하는 간단한 시나리오를 살펴 보겠습니다. 입력 이미지가 픽셀의 직사각형 격자로 나뉘어져 있다고 가정 해 보겠습니다. 이제 첫 번째 레이어는 픽셀을 추상화합니다. 두 번째 레이어는 이미지의 가장자리를 이해합니다. 다음 레이어는 가장자리에서 노드를 구성합니다. 그런 다음 다음 노드는 노드에서 분기를 찾습니다. 마지막으로 출력 레이어는 전체 개체를 감지합니다. 여기서 특징 추출 프로세스는 한 레이어의 출력에서 ​​다음 후속 레이어의 입력으로 이동합니다.

이 접근 방식을 사용하면 엄청난 양의 기능을 처리 할 수 ​​있으므로 딥 러닝이 매우 강력한 도구가됩니다. 딥 러닝 알고리즘은 구조화되지 않은 데이터 분석에도 유용합니다. 이 장에서 딥 러닝의 기초를 살펴 보겠습니다.

인공 신경망

딥 러닝의 가장 널리 사용되는 주요 접근 방식은 "인공 신경망"(ANN)을 사용하는 것입니다. 그들은 우리 몸의 가장 복잡한 기관인 인간의 뇌 모델에서 영감을 받았습니다. 인간의 뇌는 "뉴런"이라고 불리는 900 억 개 이상의 작은 세포로 구성되어 있습니다. 뉴런은 "축선"과 "수상 돌기"라고하는 신경 섬유를 통해 상호 연결됩니다. 축삭의 주요 역할은 하나의 뉴런에서 연결된 다른 뉴런으로 정보를 전송하는 것입니다.

마찬가지로 수상 돌기의 주요 역할은 연결된 다른 뉴런의 축삭에 의해 전송되는 정보를 수신하는 것입니다. 각 뉴런은 작은 정보를 처리 한 다음 결과를 다른 뉴런으로 전달하고이 과정은 계속됩니다. 이것은 인간의 두뇌가 음성, 시각 등과 같은 방대한 정보를 처리하고 유용한 정보를 추출하는 데 사용하는 기본 방법입니다.

이 모델을 기반으로 심리학자에 의해 최초의 인공 신경망 (ANN)이 발명되었습니다. Frank Rosenblatt, 1958 년. ANN은 뉴런과 유사한 여러 노드로 구성됩니다. 노드는 밀접하게 상호 연결되어 있으며 서로 다른 숨겨진 레이어로 구성됩니다. 입력 계층은 입력 데이터를 수신하고 데이터는 하나 이상의 숨겨진 계층을 순차적으로 통과하고 마지막으로 출력 계층은 입력 데이터에 대해 유용한 것을 예측합니다. 예를 들어, 입력은 이미지 일 수 있고 출력은 이미지에서 식별 된 것, 즉 "고양이"일 수 있습니다.

단일 뉴런 (ANN에서 퍼셉트론이라고 함)은 다음과 같이 나타낼 수 있습니다.

여기,

  • 무게와 함께 다중 입력은 수상 돌기를 나타냅니다.

  • 활성화 함수와 함께 입력의 합계는 뉴런을 나타냅니다. Sum 실제로 모든 입력의 계산 된 값을 의미하고 활성화 함수는 함수를 나타냅니다. Sum 값을 0, 1 또는 0에서 1로

  • 실제 출력은 축삭을 나타내며 출력은 다음 레이어의 뉴런에 의해 수신됩니다.

이 섹션에서 다양한 유형의 인공 신경망을 이해하겠습니다.

다층 퍼셉트론

다층 퍼셉트론은 ANN의 가장 단순한 형태입니다. 단일 입력 레이어, 하나 이상의 은닉 레이어 및 마지막으로 출력 레이어로 구성됩니다. 레이어는 퍼셉트론 모음으로 구성됩니다. 입력 계층은 기본적으로 입력 데이터의 하나 이상의 기능입니다. 모든 은닉층은 하나 이상의 뉴런으로 구성되며 기능의 특정 측면을 처리하고 처리 된 정보를 다음 은닉층으로 보냅니다. 출력 레이어 프로세스는 마지막 은닉 레이어에서 데이터를 수신하고 최종적으로 결과를 출력합니다.

컨볼 루션 신경망 (CNN)

컨볼 루션 신경망은 가장 인기있는 ANN 중 하나입니다. 이미지 및 비디오 인식 분야에서 널리 사용됩니다. 수학적 개념 인 컨볼 루션의 개념을 기반으로합니다. 완전히 연결된 은닉 뉴런 계층 이전에 일련의 회선 계층과 풀링 계층을 포함한다는 점을 제외하면 다층 퍼셉트론과 거의 유사합니다. 세 가지 중요한 레이어가 있습니다.

  • Convolution layer − 기본 빌딩 블록이며 convolution 함수를 기반으로 계산 작업을 수행합니다.

  • Pooling layer − convolution layer 옆에 배치되며 불필요한 정보를 제거하여 입력 크기를 줄여 계산이 더 빠르게 수행 될 수 있도록합니다.

  • Fully connected layer − 일련의 convolution 및 pooling 레이어 옆에 배치되어 입력을 다양한 카테고리로 분류합니다.

간단한 CNN은 다음과 같이 나타낼 수 있습니다.

여기,

  • 2 시리즈의 Convolution과 pooling layer가 사용되며 입력 (예 : 이미지)을 받아 처리합니다.

  • 완전히 연결된 단일 계층이 사용되며 데이터를 출력하는 데 사용됩니다 (예 : 이미지 분류).

RNN (Recurrent Neural Network)

RNN (Recurrent Neural Networks)은 다른 ANN 모델의 결함을 해결하는 데 유용합니다. 글쎄요, 대부분의 ANN은 이전 상황의 단계를 기억하지 못하고 교육의 맥락을 기반으로 결정을 내리는 방법을 배웠습니다. 한편 RNN은 과거 정보를 저장하고 모든 결정은 과거로부터 배운 것에서 취합니다.

이 접근 방식은 주로 이미지 분류에 유용합니다. 때때로 우리는 과거를 고치기 위해 미래를 들여다 봐야 할 수도 있습니다. 이 경우 양방향 RNN은 과거로부터 배우고 미래를 예측하는 데 도움이됩니다. 예를 들어, 여러 입력에 손으로 쓴 샘플이 있습니다. 한 입력에 혼동이있는 경우 다른 입력을 다시 확인하여 과거의 결정을 내리는 올바른 컨텍스트를 인식해야한다고 가정합니다.

ANN의 워크 플로우

먼저 딥 러닝의 여러 단계를 이해 한 다음 Keras가 딥 러닝 과정에서 어떻게 도움이되는지 알아 보겠습니다.

필요한 데이터 수집

딥 러닝은 결과를 성공적으로 학습하고 예측하기 위해 많은 입력 데이터가 필요합니다. 따라서 먼저 가능한 한 많은 데이터를 수집하십시오.

데이터 분석

데이터를 분석하고 데이터를 잘 이해하십시오. 올바른 ANN 알고리즘을 선택하려면 데이터를 더 잘 이해해야합니다.

알고리즘 (모델) 선택

학습 프로세스 유형 (예 : 이미지 분류, 텍스트 처리 등) 및 사용 가능한 입력 데이터에 가장 적합한 알고리즘을 선택합니다. 알고리즘은 다음과 같이 표현됩니다.ModelKeras에서. 알고리즘은 하나 이상의 레이어를 포함합니다. ANN의 각 레이어는 다음과 같이 나타낼 수 있습니다.Keras Layer Keras에서.

  • Prepare data − 데이터에서 필요한 정보 만 처리, 필터링 및 선택합니다.

  • Split data− 데이터를 훈련 및 테스트 데이터 세트로 분할합니다. 테스트 데이터는 알고리즘 / 모델의 예측을 평가하고 (한 번 머신 러닝) 학습 프로세스의 효율성을 교차 확인하는 데 사용됩니다.

  • Compile the model− 알고리즘 / 모델을 컴파일하여 학습을 통해 학습하고 마지막으로 예측에 사용할 수 있도록합니다. 이 단계에서는 손실 함수와 Optimizer를 선택해야합니다. 손실 함수와 Optimizer는 학습 단계에서 오류 (실제 출력과의 편차)를 찾고 최적화하여 오류가 최소화되도록합니다.

  • Fit the model − 실제 학습 과정은 훈련 데이터 세트를 사용하여이 단계에서 수행됩니다.

  • Predict result for unknown value − 알려지지 않은 입력 데이터에 대한 출력 예측 (기존 교육 및 테스트 데이터 제외)

  • Evaluate model − 테스트 데이터의 출력을 예측하고 예측을 테스트 데이터의 실제 결과와 교차 비교하여 모델을 평가합니다.

  • Freeze, Modify or choose new algorithm− 모델 평가가 성공했는지 확인합니다. 그렇다면 향후 예측을 위해 알고리즘을 저장하십시오. 그렇지 않은 경우 새 알고리즘 / 모델을 수정하거나 선택하고 마지막으로 모델을 다시 학습, 예측 및 평가합니다. 최상의 알고리즘 (모델)을 찾을 때까지 프로세스를 반복하십시오.

위의 단계는 아래 순서도를 사용하여 나타낼 수 있습니다.