検索
ホームページテクノロジー周辺機器AILSTM を使用して連続テキストを生成する方法と技術

LSTM を使用して連続テキストを生成する方法と技術

Jan 23, 2024 am 09:00 AM
機械学習人工ニューラルネットワーク

LSTM を使用して連続テキストを生成する方法と技術

LSTM は、長期的な依存関係の問題を解決するために使用されるリカレント ニューラル ネットワークの一種です。中心となるアイデアは、一連のゲート ユニットを介して入力、出力、および内部状態の流れを制御し、それによって RNN における勾配の消失または爆発の問題を効果的に回避することです。このゲート メカニズムにより、LSTM は情報を長期間記憶し、必要に応じて状態を選択的に忘れたり更新したりできるため、長いシーケンス データの処理が向上します。

LSTM の動作原理は、忘却ゲート、入力ゲート、出力ゲートを含む 3 つのゲート制御ユニットを通じて情報の流れと保存を制御することです。

Forgetting Gate: 以前の状態を忘れる必要があるかどうかを制御し、モデルが以前の状態情報を選択的に保持できるようにします。

入力ゲート: 現在の状態における新しい入力情報の割合を制御し、モデルが新しい情報を選択的に追加できるようにします。

出力ゲート: 現在の状態情報の出力を制御し、モデルが状態情報を選択的に出力できるようにします。

たとえば、LSTM を使用して天気に関するテキストを生成するとします。まず、テキストを数値に変換する必要があります。これは、各単語を一意の整数にマッピングすることで実行できます。次に、これらの整数を LSTM にフィードし、次の単語の確率分布を予測できるようにモデルをトレーニングします。最後に、この確率分布を使用して連続テキストを生成できます。

以下は、LSTM を実装してテキストを生成するサンプル コードです:

import numpy as np
import sys
import io
from keras.models import Sequential
from keras.layers import Dense, LSTM, Dropout
from keras.callbacks import ModelCheckpoint
from keras.utils import np_utils

# 读取文本文件并将其转换为整数
with io.open('text.txt', encoding='utf-8') as f:
    text = f.read()
chars =list(set(text))
char_to_int = dict((c, i) for i, c in enumerate(chars))

# 将文本分割成固定长度的序列
seq_length = 100
dataX = []
dataY = []
for i in range(0, len(text) - seq_length, 1):
    seq_in = text[i:i + seq_length]
    seq_out = text[i + seq_length]
    dataX.append([char_to_int[char] for char in seq_in])
    dataY.append(char_to_int[seq_out])
n_patterns = len(dataX)

# 将数据转换为适合LSTM的格式
X = np.reshape(dataX, (n_patterns, seq_length, 1))
X = X / float(len(chars))
y = np_utils.to_categorical(dataY)

# 定义LSTM模型
model = Sequential()
model.add(LSTM(256, input_shape=(X.shape[1], X.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(256))
model.add(Dropout(0.2))
model.add(Dense(y.shape[1], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')

# 训练模型
filepath="weights-improvement-{epoch:02d}-{loss:.4f}.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]
model.fit(X, y, epochs=20, batch_size=128, callbacks=callbacks_list)

# 使用模型生成文本
int_to_char = dict((i, c) for i, c in enumerate(chars))
start = np.random.randint(0, len(dataX)-1)
pattern = dataX[start]
print("Seed:")
print("\"", ''.join([int_to_char[value] for value in pattern]), "\"")
for i in range(1000):
    x = np.reshape(pattern, (1, len(pattern), 1))
    x = x / float(len(chars))
    prediction = model.predict(x, verbose=0)
    index = np.argmax(prediction)
    result = int_to_char[index]
    seq_in = [int_to_char[value] for value in pattern]
    sys.stdout.write(result)
    pattern.append(index)
    pattern = pattern[1:len(pattern)]

上記のコードでは、まず io ライブラリを通じてテキスト ファイルを読み取り、それぞれをマップします。文字を一意の整数に変換します。次に、テキストを長さ 100 のシーケンスに分割し、これらのシーケンスを LSTM に適した形式に変換します。次に、次の文字の確率分布を計算するための活性化関数としてソフトマックスを使用して、2 つの LSTM 層と全結合層を含むモデルを定義します。最後に、fit メソッドを使用してモデルをトレーニングし、predict メソッドを使用して連続テキストを生成します。

モデルを使用してテキストを生成する場合、まず開始点としてデータセットからシーケンスをランダムに選択します。次に、モデルを使用して次の文字の確率分布を予測し、最も高い確率を持つ文字を次の文字として選択します。次に、シーケンスの最後に文字を追加し、シーケンスの先頭の文字を削除します。1000 文字のテキストが生成されるまで上記の手順を繰り返します。

一般に、LSTM は長期的な依存関係の問題を解決するために特別に設計されたリカレント ニューラル ネットワークの一種です。ゲート ユニットを使用して入力、出力、および内部状態のフローを制御することにより、LSTM はグラデーションの消失または爆発の問題を回避し、連続テキストの生成などのアプリケーションを可能にします。

以上がLSTM を使用して連続テキストを生成する方法と技術の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は网易伏羲で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
顔を抱きしめます' S 7BモデルオリンピックコダーはClaude 3.7を破っていますか?顔を抱きしめます' S 7BモデルオリンピックコダーはClaude 3.7を破っていますか?Apr 23, 2025 am 11:49 AM

FaceのOlympiccoder-7Bを抱き締める:強力なオープンソースコード推論モデル 優れたコードに焦点を当てた言語モデルを開発するための競争は激化しており、顔を抱き締めることは、恐るべき競争相手との競争に参加しました:Olympiccoder-7B、製品

4つの新しいジェミニ機能は、見逃す余裕があります4つの新しいジェミニ機能は、見逃す余裕がありますApr 23, 2025 am 11:48 AM

AIが質問に答えるだけでなく、AIができることを望んでいる人は何人いますか?私は自分が持っていることを知っています、そして最近、私はそれがどのように変容しているかに驚いています。 aiチャットボットはもうチャットするだけでなく、作成することです。

Camundaは、エージェントAIオーケストレーションの新しいスコアを作成しますCamundaは、エージェントAIオーケストレーションの新しいスコアを作成しますApr 23, 2025 am 11:46 AM

Smart AIは、エンタープライズソフトウェアプラットフォームとアプリケーションのあらゆるレベルのレベルに統合され始めているため(強力なコアツールと信頼性の低いシミュレーションツールの両方があることを強調する必要があります)、これらのエージェントを管理するための新しいインフラストラクチャ機能のセットが必要です。 ドイツのベルリンに拠点を置くプロセスオーケストレーション会社であるCamundaは、Smart AIが適切な役割を果たし、新しいデジタル職場での正確なビジネス目標とルールと一致するのに役立つと考えています。同社は現在、組織がAIエージェントのモデル化、展開、管理を支援するように設計されたインテリジェントオーケストレーション機能を提供しています。 実用的なソフトウェアエンジニアリングの観点から、これはどういう意味ですか? 確実性と非決定的プロセスの統合 同社は、鍵はユーザー(通常はデータサイエンティスト、ソフトウェア)を許可することだと言いました

キュレーションされたエンタープライズAIエクスペリエンスに価値はありますか?キュレーションされたエンタープライズAIエクスペリエンスに価値はありますか?Apr 23, 2025 am 11:45 AM

次の'25年にGoogle Cloudに参加して、GoogleがどのようにAIの製品を区別するかを見たいと思っていました。 エージェントスペース(ここで説明)とカスタマーエクスペリエンススイート(ここで説明)に関する最近の発表は、ビジネス価値を強調し、

ぼろきれに最適な多言語埋め込みモデルを見つける方法は?ぼろきれに最適な多言語埋め込みモデルを見つける方法は?Apr 23, 2025 am 11:44 AM

検索拡張生成(RAG)システムのための最適な多言語埋め込みモデルの選択 今日の相互接続された世界では、効果的な多言語AIシステムを構築することが最重要です。 REには、堅牢な多言語埋め込みモデルが重要です

ムスク:オースティンのロボタキシスは、10,000マイルごとに介入が必要ですムスク:オースティンのロボタキシスは、10,000マイルごとに介入が必要ですApr 23, 2025 am 11:42 AM

テスラのオースティンロボタキシローンチ:マスクの主張を詳しく見る Elon Muskは最近、テキサス州オースティンでのテスラの今後のRobotaxi発売を発表しました。当初、安全上の理由で10〜20台の車両の小さな艦隊を展開し、迅速な拡大を計画しました。 h

AI'の衝撃的なピボット:作業ツールからデジタルセラピストやライフコーチまでAI'の衝撃的なピボット:作業ツールからデジタルセラピストやライフコーチまでApr 23, 2025 am 11:41 AM

人工知能の適用方法は予期しない場合があります。当初、私たちの多くは、それが主にコードの作成やコンテンツの作成など、創造的で技術的なタスクに使用されていると思うかもしれません。 ただし、Harvard Business Reviewによって報告された最近の調査では、そうではないことが示されています。ほとんどのユーザーは、仕事だけでなく、サポート、組織、さらには友情のために人工知能を求めています! 報告書は、AIアプリケーションの最初のケースは治療と交際であると述べています。これは、その24時間年中無休の可用性と匿名の正直なアドバイスとフィードバックを提供する能力が非常に価値があることを示しています。 一方、マーケティングタスク(ブログの作成、ソーシャルメディアの投稿の作成、広告コピーなど)は、一般的な使用リストではるかに低くランク付けされています。 なぜこれがなぜですか?研究の結果とそれがどのように続くかを見てみましょう

企業はAIエージェントの採用に向けて競い合っています企業はAIエージェントの採用に向けて競い合っていますApr 23, 2025 am 11:40 AM

AIエージェントの台頭は、ビジネス環境を変えています。 Cloud Revolutionと比較して、AIエージェントの影響は指数関数的に大きく、知識作業に革命をもたらすことを約束していると予測されています。 人間の意思決定-makiをシミュレートする能力

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。