見出し画像

TWSNMP FC: brain.jsで作ったAIアシスタントにSyslogの分析を頼むと意味不明のことを言われた

今朝は猫が2時に起こしてくれました。今日からbrain.js

を使ってSyslogの分析をするためのAIアシスタントを作ることを察知したのだと思います。さすがに2時に起きるのは辛いので二度寝しました。2回目は4時でした。今回作ろうと思ったAIアシスタントは、

のドキュメントの

const net = new brain.recurrent.LSTM();

net.train([
 { input: 'I feel great about the world!', output: 'happy' },
 { input: 'The world is a terrible place!', output: 'sad' },
]);

const output = net.run('I feel great about the world!'); // 'happy'

のサンプルコードに触発された結果です。
開発するAIアシスタントのイメージは、

画像1

syslogのタグとメッセージに対して人間が分類欄に何か分類するための文字列を入力してあげます。サンプルのソースコードのinputがメッセージとタグでoutputが分類です。このデータで学習させれば、同じようなログは同じ分類になるはずというアイデアです。AIアシスタントの分類は結果欄に表示します。なんとなくできたので試してみると、結果欄は、意味不明の文字列がならんでいます。
何が悪いのかわからないのでサンプルの処理を試してみることにしました。

  const trainingData = [
   { input: 'I feel great about the world!', output: 'happy' },
   { input: 'The world is a terrible place!', output: 'sad' },
 ]
 const net = new brain.recurrent.LSTM()
 net.train(trainingData, {
   iterations: 2000,
   timeout: 1000 * 20,
   errorThresh: 0.01,
 })
 console.log(net.run('I feel great about the world!'))
 console.log(net.run('terrible'))
 console.log(net.run('hehe'))

結果は、

happy
lace!sad
sad

1番目は、サンプルと同じなのでOKですが、3番目は学習データにある答えなのでまあ良いとして、問題は2番目です。どうやって作ったかわからない言葉'lace!sad'を答えています。
人間に教えるのも難しいですが、AIに教えるのも難しいです。AIアシスタントの気持ちを理解して何が言いたいのか時間がかかりそうですが、今日は時間切れです。

明日に続く

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
twsnmp

頂いたサポートは助手の猫のご飯代とテスト用の機材の購入に活用させていただきます。

有難き幸せ!
3
私は、TWSNMP Managerの開発者です。 20年以上前に作ったソフトを、今も多くの人に使っていただけて、幸せに思っています。 2019年末から新しい技術でTWSNMPの復刻版を開発しました。 2021年からコンテナ環境で使えるTWSNMP FCを開発しています。