Keras - การเรียนรู้เชิงลึก

Keras เป็นโครงร่างที่สมบูรณ์เพื่อสร้างโครงข่ายประสาทเทียมทุกประเภท Keras เป็นนวัตกรรมใหม่และง่ายต่อการเรียนรู้ สนับสนุนเครือข่ายประสาทเทียมอย่างง่ายไปจนถึงแบบจำลองเครือข่ายประสาทเทียมที่มีขนาดใหญ่และซับซ้อน ให้เราเข้าใจสถาปัตยกรรมของ Keras framework และวิธีที่ Keras ช่วยในการเรียนรู้เชิงลึกในบทนี้

สถาปัตยกรรมของ Keras

Keras API สามารถแบ่งออกเป็นสามประเภทหลัก -

  • Model
  • Layer
  • โมดูลหลัก

ใน Keras ทุก ANN จะแสดงด้วย Keras Models. ในทางกลับกัน Keras Model ทุกตัวเป็นองค์ประกอบของKeras Layers และแสดงถึงเลเยอร์ ANN เช่นอินพุต, เลเยอร์ที่ซ่อนอยู่, เลเยอร์เอาต์พุต, เลเยอร์คอนโวลูชั่น, เลเยอร์พูลเป็นต้น, โมเดล Keras และการเข้าถึงเลเยอร์ Keras modules สำหรับฟังก์ชันการเปิดใช้งานฟังก์ชันการสูญเสียฟังก์ชันการทำให้เป็นมาตรฐาน ฯลฯ การใช้โมเดล Keras, Keras Layer และโมดูล Keras อัลกอริทึม ANN ใด ๆ (CNN, RNN ฯลฯ ) สามารถแสดงได้อย่างเรียบง่ายและมีประสิทธิภาพ

แผนภาพต่อไปนี้แสดงถึงความสัมพันธ์ระหว่างโมเดลเลเยอร์และโมดูลแกน -

ให้เราดูภาพรวมของโมเดล Keras เลเยอร์ Keras และโมดูล Keras

รุ่น

Keras Models มีสองประเภทดังที่กล่าวไว้ด้านล่าง -

Sequential Model- แบบจำลองลำดับโดยพื้นฐานแล้วเป็นองค์ประกอบเชิงเส้นของ Keras Layers แบบจำลองต่อเนื่องเป็นเรื่องง่ายน้อยที่สุดและมีความสามารถในการแสดงโครงข่ายประสาทเทียมที่มีอยู่เกือบทั้งหมด

แบบจำลองตามลำดับอย่างง่ายมีดังนี้ -

from keras.models import Sequential 
from keras.layers import Dense, Activation 

model = Sequential()  
model.add(Dense(512, activation = 'relu', input_shape = (784,)))

ที่ไหน

  • Line 1 การนำเข้า Sequential โมเดลจากโมเดล Keras

  • Line 2 การนำเข้า Dense เลเยอร์และ Activation โมดูล

  • Line 4 สร้างแบบจำลองตามลำดับใหม่โดยใช้ Sequential API

  • Line 5 เพิ่มเลเยอร์หนาแน่น (Dense API) ด้วย relu การเปิดใช้งาน (โดยใช้โมดูลการเปิดใช้งาน)

Sequential แบบจำลองเปิดเผย Modelคลาสเพื่อสร้างโมเดลที่กำหนดเองด้วย เราสามารถใช้แนวคิดการแบ่งประเภทย่อยเพื่อสร้างแบบจำลองที่ซับซ้อนของเราเอง

Functional API - Functional API โดยพื้นฐานแล้วจะใช้เพื่อสร้างแบบจำลองที่ซับซ้อน

ชั้น

เลเยอร์ Keras แต่ละชั้นในแบบจำลอง Keras แสดงถึงเลเยอร์ที่เกี่ยวข้อง (ชั้นอินพุตชั้นที่ซ่อนอยู่และชั้นเอาต์พุต) ในแบบจำลองเครือข่ายประสาทเทียมที่เสนอจริง Keras มีเลเยอร์ที่สร้างไว้ล่วงหน้าจำนวนมากเพื่อให้สามารถสร้างเครือข่ายประสาทเทียมที่ซับซ้อนได้อย่างง่ายดาย เลเยอร์ Keras ที่สำคัญบางส่วนมีการระบุไว้ด้านล่าง

  • เลเยอร์หลัก
  • เลเยอร์ Convolution
  • การรวมเลเยอร์
  • เลเยอร์ที่เกิดซ้ำ

รหัส python อย่างง่ายเพื่อแสดงรูปแบบเครือข่ายประสาทโดยใช้ sequential โมเดลมีดังนี้ -

from keras.models import Sequential 
from keras.layers import Dense, Activation, Dropout model = Sequential() 

model.add(Dense(512, activation = 'relu', input_shape = (784,))) 
model.add(Dropout(0.2)) 
model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2)) 
model.add(Dense(num_classes, activation = 'softmax'))

ที่ไหน

  • Line 1 การนำเข้า Sequential โมเดลจากโมเดล Keras

  • Line 2 การนำเข้า Dense เลเยอร์และ Activation โมดูล

  • Line 4 สร้างแบบจำลองตามลำดับใหม่โดยใช้ Sequential API

  • Line 5 เพิ่มเลเยอร์หนาแน่น (Dense API) ด้วย relu การเปิดใช้งาน (โดยใช้โมดูลการเปิดใช้งาน)

  • Line 6 เพิ่มเลเยอร์กลางคัน (Dropout API) เพื่อจัดการกับความเหมาะสมมากเกินไป

  • Line 7 เพิ่มเลเยอร์หนาแน่น (Dense API) ด้วย relu การเปิดใช้งาน (โดยใช้โมดูลการเปิดใช้งาน)

  • Line 8 เพิ่มเลเยอร์กลางคัน (Dropout API) อีกชั้นเพื่อจัดการกับความเหมาะสมที่มากเกินไป

  • Line 9 เพิ่มเลเยอร์หนาแน่นขั้นสุดท้าย (Dense API) ด้วย softmax การเปิดใช้งาน (โดยใช้โมดูลการเปิดใช้งาน)

Keras ยังมีตัวเลือกในการสร้างเลเยอร์ที่กำหนดเอง สามารถสร้างเลเยอร์ที่กำหนดเองได้โดยการแบ่งประเภทย่อยของไฟล์Keras.Layer คลาสและคล้ายกับโมเดล Keras ย่อย

โมดูลหลัก

Keras ยังมีฟังก์ชันที่เกี่ยวข้องกับโครงข่ายประสาทเทียมในตัวมากมายเพื่อสร้างโมเดล Keras และเลเยอร์ Keras อย่างถูกต้อง บางส่วนของฟังก์ชั่นมีดังนี้ -

  • Activations module - ฟังก์ชันการเปิดใช้งานเป็นแนวคิดที่สำคัญใน ANN และโมดูลการเปิดใช้งานมีฟังก์ชันการเปิดใช้งานมากมายเช่น softmax, relu ฯลฯ

  • Loss module - โมดูลการสูญเสียมีฟังก์ชันการสูญเสียเช่น mean_squared_error, mean_absolute_error, poisson เป็นต้น

  • Optimizer module - โมดูลเครื่องมือเพิ่มประสิทธิภาพให้ฟังก์ชันเครื่องมือเพิ่มประสิทธิภาพเช่น adam, sgd ฯลฯ

  • Regularizers - โมดูล Regularizer มีฟังก์ชันต่างๆเช่น L1 regularizer, L2 regularizer เป็นต้น

ให้เราเรียนรู้โมดูล Keras โดยละเอียดในบทต่อไป