83126


AIについて分かっておらず、以下のようなことを、AIを使用すれば実現できるかお聞きしたいです。

### 行いたいこと

様々な部品に対して、キーワードを登録しており、一定数のサンプルデータ（教師データ？）から新しい部品に対するキーワードを自動作成する。

例えば、Webサイトで、様々な部品（部品名や型式やメーカ名も含む）を登録します。また、それらのデータをDBに蓄積させます。  
その後、一定数のサンプルデータを取得できれば、DBのデータを元にAIの解析を使用して、新しい部品登録から、その部品のキーワードを自動作成可能かどうかです(その後、部品リストに部品とそのキーワードを表示させていくようなイメージです)。

サンプルデータが以下として、新しく登録された部品Cのキーワードが、「LANケーブル」として自動生成・表示されるかどうかです。

部品Aのキーワード：同軸ケーブル/5m/  
部品Bのキーワード：LANケーブル/3m/

何となく厳しそうな気がしていますが、教えていただければ助かります。よろしくお願いいたします。


CC BY-SA 4.0
2021-10-14T06:52:05.580
83092
2021-10-22T06:46:54.820
2021-10-22T06:46:54.820
3060
43586
question
機械学習
AIを使用すれば「部品の分類」を実現できるかどうか


書かれている内容について、いくつかのAIの組み合わせで実現できると思います。  
まずは、利用する２種類のAIの仕組みを簡単に解説します。  
これらを適切に組み合わせることで、問題が解決できると考えます。

## ・自然言語処理用AI（例：Word2Vec）

1．
AIに意味を分類したいキーワード（キーワード候補自体が分類時の入力変数に入っていない場合は分類につかう変数も）が含まれる教材を使って学習させます。これによって、AIは各キーワードを「多次元ベクトル」（意味ベクトル）へ変換できるようになります。AIは、各キーワードの内、似ているものを似ているベクトルに変換するようになります。それらは「近い意味である」と学習しているためです。

２．「LAN」などの、キーワード候補として取り扱いたいワードをあらかじめ全てベクトルに変換しておきます。これは後の計算で使います。分類用のキーワードが形態素解析などによって複数に分割出来る場合は、ベクトルを合成すると簡単な場合があります。  
例えば、「LAN」＋「ケーブル」というように複数の意味ベクトルを合成すると、結果のベクトルには「LAN」と「ケーブル」のどちらの意味も含まれます。ただし、あまり合成する数が多いと意味がぼやけやすくなるのと、「LAN」とも「ケーブル」とも類似になるので注意は必要です。

３．新しく登録する際に、分類したい部品の情報（例えば新しく登録された部品Cに関する情報）をベクトルに変換します。  
ここで使う情報はなるべくノイズを減らす方が良いので、分類したい内容的に無意味な情報は使わないようにします。

４．２と３のベクトル同士の類似度を「ベクトル同士の距離」や「ベクトル同士の角度の差」などの数学的な計算によって算出します。ベクトルの計算のみなのでこれは非常に高速であり、合成したベクトルでも同様に計算できます。

５．４で最も類似であると計算されたキーワード候補が、分類したい部品に対して自動作成されるキーワードになります。

## ・ロジスティック回帰系AI（例：多層パーセプトロンで、出力層をロジスティック（シグモイド）関数の多変量版であるソフトマックス関数にしたもの）

１．このAIは基本的に入力が0と1の組み合わせが配列になったデータであり、予め入力内容を定義出来る場合に使用します。

２．例として、分類対象の部品を以下とおきます。（部品Cが分類対象で、Bと全く同じデータになっていますが、実際には学習したデータのバリエーション次第でBと全く同じでなくとも大丈夫です）  
部品A｛品名：○○同軸ケーブル,型式：A-111,自社のどの製品に使用されるか：製品X,メーカー：○○電機｝  
部品B｛品名：○○LANケーブル,型式：B-111,自社のどの製品に使用されるか：製品Y,メーカー：○○商事｝  
部品C｛品名：○○LANケーブル,型式：B-111,自社のどの製品に使用されるか：製品Y,メーカー：○○商事｝

３．まず全ての変数（「品名」、「型式」、「自社のどの製品に使用されるか」、「メーカ」のバリエーション）を洗い出します。「品名」にパターンが多すぎるような場合は、「品名」部分では自然言語処理用AIを用いるか、形態素解析後に品名分類用の辞書（作成可能な場合）とマッチングさせるべきなので、今回は簡単のために「品名」を除外します。  
なので、パターンは以下の通りです。  
[A-111,B-111,製品X,製品Y,○○電機,○○商事]

４．部品の属性のうち、先ほどのパターンとマッチする部分を1にした配列を作成します。  
例えば部品Aは  
[1,0,1,0,1,0]  
です。  
これがAIの学習の時と、新しい部品を追加して実際に分類する時に使う、AIへの入力作成方法です。

５．AIに、既存のデータにある部品Aと部品Bについて学習させます。  
教師データ（AIにパターンを教えるために作る必要のあるデータ）の例は以下の通りです。  
{入力（部品A）：[1,0,1,0,1,0],出力：[1,0]}  
{入力（部品B）：[0,1,0,1,0,1],出力：[0,1]}  
ここで、  
出力が[1,0]だった場合を{長さ:5m,色:銀色}、  
出力が[0,1]だった場合を{長さ:3m,色:赤色}、  
とします。このように特定の配列に対応する辞書をあらかじめ作成しておきます。

６．新しく分類したい、部品CをAIで分類します。  
部品Cは入力が[0,1,0,1,0,1]なので出力は[0,1]となり、辞書から{長さ:3m,色:赤色}というキーワードが得られます。

## 上記２つのAIの併用

部品の変数である、「品名」、「型式」、「自社のどの製品に使用されるか」、「メーカ」の内、「品名」を自然言語処理用AIで、それ以外をロジスティック回帰系AIで処理し、結果を結合します。  
部品Cの場合では、自然言語処理用AIの結果から不要なワード「○○」が取り除かれた「LANケーブル」というキーワードが得られます。  
同様に、ロジスティック回帰系AIの結果からは{長さ:3m,色:赤色}という結果が得られます。

**これを組み合わせて得られる部品Cの結果キーワードは以下となります。**  
LANケーブル/3m/赤色

この方法によって、AIでこの問題を解決できると思います。


CC BY-SA 4.0
2021-10-16T09:23:30.903
83126
2021-10-21T09:57:01.607
2021-10-21T09:57:01.607
8795
8795
83092
answer