โมเดลสร้างข้อความ

Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

David Cecchini

Data Scientist

คล้ายกับโมเดลการจำแนกประเภท

โมเดลสร้างข้อความ:

  • ใช้คำศัพท์เป็นคลาส
  • เลเยอร์สุดท้ายใช้ softmax ที่มีจำนวนยูนิตเท่ากับขนาด vocabulary
  • ใช้ categorical_crossentropy เป็น loss function
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

ตัวอย่างโมเดลด้วย keras

model = Sequential()

model.add(LSTM(units, input_shape=(chars_window, n_vocab), dropout=0.15, recurrent_dropout=0.15, return_sequences=True))
model.add(LSTM(units, dropout=dropout, recurrent_dropout=0.15, return_sequences=False))
model.add(Dense(n_vocab, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

แต่ไม่ใช่โมเดลการจำแนกประเภทอย่างแท้จริง

ความแตกต่างจากการจำแนกประเภท:

  • คำนวณ loss แต่ไม่มี performance metrics (accuracy)
    • มนุษย์ดูผลลัพธ์และประเมินประสิทธิภาพเอง
    • หากยังไม่ดี ให้เทรนเพิ่ม epoch หรือเพิ่มความซับซ้อนของโมเดล (เพิ่ม memory cell, เพิ่มเลเยอร์ ฯลฯ)
  • ใช้ร่วมกับกฎการสร้างข้อความตามงาน
    • สร้างอักขระถัดไป
    • สร้างหนึ่งคำ
    • สร้างหนึ่งประโยค
    • สร้างหนึ่งย่อหน้า
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

การประยุกต์ใช้งานอื่น

  • การสร้างชื่อ
    • ชื่อเด็กแรกเกิด
    • ชื่อดาวใหม่ ฯลฯ
  • สร้างข้อความที่มี markup
    • LaTeX
    • Markdown
    • XML ฯลฯ
    • โค้ดโปรแกรม
  • บทความข่าว
  • แชทบอต
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

การเตรียมข้อมูล

แสดงกระบวนการเตรียมข้อมูลสำหรับงานสร้างข้อความ โดยแปลงข้อความเป็นลำดับตัวเลข แล้วแบ่งชุดข้อมูลการเทรนเป็น X และ Y โดย X เก็บลำดับที่มีความยาวคงที่ และ Y เก็บอักขระถัดไป

Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

มาฝึกกันเถอะ!

Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

Preparing Video For Download...