ฟังก์ชันสร้างข้อความ

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

David Cecchini

Data Scientist

การสร้างประโยค

  • ประโยคถูกกำหนดด้วยเครื่องหมายวรรคตอน เช่น . (จุด), ! (ตกใจ) หรือ ? (คำถาม)

    • เครื่องหมายวรรคตอนเหล่านี้ต้องอยู่ใน vocabulary
  • มี token สำหรับประโยค เช่น <SENT> และ </SENT> เพื่อกำหนดจุดเริ่มต้นและจุดสิ้นสุดของประโยค

    • ต้องประมวลผลข้อมูลล่วงหน้าเพื่อแทรก label เหล่านี้
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

การสร้างประโยค

sentence = ''

# Loop until end of sentence while next_char != '.':
# Predict next char: Get pred array in position 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Concatenate to sentence sentence = sentence + next_char
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

การปรับขนาดความน่าจะเป็น

ปรับขนาดการกระจายความน่าจะเป็น

  • Temperature: ชื่อมาจากฟิสิกส์
    • ค่าน้อย: ทำให้การทำนายมั่นใจมากขึ้น
    • ค่าเท่ากับหนึ่ง: ไม่มีการปรับขนาด
    • ค่าสูง: ทำให้การทำนายสร้างสรรค์มากขึ้น
    • Hyper-parameter: ลองค่าต่างๆ เพื่อให้ผลการทำนายตรงตามความต้องการ
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

การปรับขนาดความน่าจะเป็น

def scale_softmax(softmax_pred, temperature=1.0):
    # Take the logarithm
    scaled_pred = np.log(softmax_pred) / temperature

# Re-apply the exponential scaled_pred = np.exp(scaled_pred)
# Build probability distribution scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simulate multinomial scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Return simulated class return np.argmax(scaled_pred)
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras

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

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

Preparing Video For Download...