2024年08月22日
AI のあることないこと QA 編
AI (機械学習) を使って、できること、できないこと。
AI という用語を持ち出すだけで、過大な期待をされがちです。
誤った期待には絶望感を示しながら、整理していきたいと思います。
---
Q1 AI を活用して、類似図面の設計・提案に利用できないだろうか
A 「顧客支給図面 X」に対して、「設計図面 Y」で以て問題解決が成功した、という事例を多数蓄積しているのであれば、機械学習が提供する「画像分類」 (Image Classification) 技術を用いてアプローチできる可能性があります。
「顧客支給図面 A」に対して「設計図面 B」を ○○ % の確率でお勧めします、というアウトプットができます。
---
Q2 AI を活用して、新人営業が、ベテラン営業のようなパフォーマンスを達成することはできないだろうか
A ベテラン営業と「同様のことを達成したい」のであれば、新人営業はベテラン営業を「真似するべき」です。同じ原因には、同じ結果が伴うためです。AI とは直接的な関係がありません。
---
Q3 AI を活用して 〜〜 をできないだろうか
ビジネスの方法に関して仮説を持っているのであれば、ChatGPT などのサービスで相談できると思います。
例
「弁当屋です。弁当の売上個数と天気には関係があると思います。これを AI (機械学習) で解決できますか。」
gpt-35-turbo による回答案
「はい、AI(機械学習)を使用して弁当の売上個数と天気の関係を解決することができます。機械学習アルゴリズムを使用して、過去の売上データと天気データを分析し、天気のパターンと売上個数の関連性を見つけることができます。その後、予測モデルを構築して、将来の天気予報を入力することで、売上個数を予測することができます。このような予測モデルは、弁当屋の需要予測や在庫管理などに役立ちます。」
一般的に、機械学習で解決できると思われる課題をリストアップしてみます。
参考: ML.NET |.NET 用に作成された機械学習
二項分類アルゴリズム (多クラス分類アルゴリズム)
- [感情分析] レビューの感情分析ができます。入力文章に対して予め「肯定的・否定的」という、いずれかの評価を添えて学習することで、未知の文章に対して「肯定的 ○○ %」「否定的 ○○ %」の推論ができるようになります。多クラス分類アルゴリズムでは、3 つ以上の感情 (例: 肯定、否定、喜び、悲しみなど) を表現することも可能です。但し、「肯定、否定」と「喜び、悲しみ」とでは評価の意図が異なる可能性があります。この場合は別々のモデルを構築して、別々に評価した方が良いでしょう。
- [不正検出] 約 31 個の項目 (V1 〜 V28、前回取引からの経過時間、取引金額、不正の有無) を用いて学習します。そして、与えられた環境情報 (V1 〜 V28、前回取引からの経過時間、取引金額) をもとに、不正有りの確率 (○○ %) を推論します。V1 〜 V28 は特微量です。取引データなど、機密に関わる情報は通常、そのまま使用しません。特定の意図を残したまま、別の形式に変換したものを用います。
クラスター アルゴリズム
- [顧客セグメント] グループ分けが不明な数値データの羅列について、機械的に N 個のグループへ分けさせる事を目的とします。N は、モデルの学習時に指定します。
回帰アルゴリズム
- [販売予測] 過去の 環境情報 (例: 天気、季節、その他) + 売上金額 の情報を学習して、環境情報を元にした未来の売上金額を予測します。
- [料金予測] 同上
画像分類
- 1 枚の画像を分類 (ラベル + 確率 のリストを出力) します。例えば、食べ物の画像を分類するモデルであれば、ピザの画像に対して ピザの画像である確率 80% のような出力をします。
オブジェクトの検出
- 1 枚の画像に含まれる人や物を検出 (複数可能) します。検出対象は、人であれ物であれ、予め学習しておく必要があります。YOLO モデルでは、画像の (X, Y, width, height) の範囲内に「人」が映っている可能性 70% のような出力をします。
行列分解アルゴリズム
- [製品のおすすめ] 例として 2 次元のデータ (横軸に顧客一覧、縦軸に商品一覧、各セルに評価を入力したもの) をもとに、特定の条件 (特定の顧客と、特定の商品の組み合わせ) における、おすすめ度合いを数値 (例: 0.0 〜 1.0) で推論します。3 次元以上のデータを使用する方法もあるようです。
狭義の AI ができること
狭義の AI ができることは、
虫食い問題を解く程度のことです。
過去のデータを分析し、
未来のデータを予測する…
但し、機械学習での訓練・推論では、入出力情報が主に数値 (例: 0.0 ~ 1.0) であるため、文字列などのラベル情報は数値と置き換える必要があります。例: 晴れ = 0.0、曇り = 0.5、雨 = 1.0
例えば、
今日は(晴れ 0.0)の日だから、弁当が(よく売れた 100)。
今日は(曇り 0.5)の日だから、弁当が(あまり売れなかった 50)。
今日は(雨 1.0)の日だから、弁当が(ほとんど売れなかった 20)。
機械学習のモデルでは、定型の文章は削除してしまい、数値だけ残している、という状態に通常はします。
0.0 → 100
0.5 → 50
1.0 → 20
推論の例として、
今日は(どしゃ降り 2.0)の日だから、弁当が(売れなかった 3)。
2.0 → 3
という風に「どしゃ降り」の直接的なデータは存在しないが、推論をすることはできる、というのが特徴です。
訓練に使用するデータは、因果関係が成立しているものや、相関関係が認められるものの方が良いです。
例
原因 = 雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
結果 = 売り上げた弁当の個数 0 〜
結果の項目数は通常 1 つですが、原因の方の項目数はいくつあっても構いません。項目数や、レコード数に関係なく、よしなに訓練・推論できるのが機械学習の良さです。
原因には、「予測値」と「実測値」があります。
予測値の例: 天気予報による雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
実測値の例: 実際の天気を観測することにより知り得た雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
推論をしたい早朝の段階では、「実測値」の方は未知である可能性があります。
そのため、仮定を含めて推論することで情報量を増やし、その結果を元に意思決定をする、というやり方もあるかと思います。
これは、項目数を 3 にした場合の例えです:
今日は(晴れ 0.0)の予報があり、実際は(晴れ 0.0)であると、弁当が(よく売れた 100)。
今日は(晴れ 0.0)の予報があり、実際は(曇り 0.5)であると、弁当が(そこそこ売れた 70)。
今日は(晴れ 0.0)の予報があり、実際は(雨 1.0)であると、弁当が(あまり売れなかった 15)。
実測値である実際の天気の部分を、試しに「晴れ 0.0」「曇り 0.5」「雨 1.0」と仮定して推論をしてみる、という具合です。
こういった推論をするためには、毎日、天気予報と、実際の天気と、弁当の売上個数を記録して数値データ化し、日々、モデルを訓練する必要があります。
運用が大変ですが、機械学習には、こうった使い道もあるという事で理解頂ければ幸いです。
虫食い問題を解く程度のことです。
過去のデータを分析し、
未来のデータを予測する…
但し、機械学習での訓練・推論では、入出力情報が主に数値 (例: 0.0 ~ 1.0) であるため、文字列などのラベル情報は数値と置き換える必要があります。例: 晴れ = 0.0、曇り = 0.5、雨 = 1.0
例えば、
今日は(晴れ 0.0)の日だから、弁当が(よく売れた 100)。
今日は(曇り 0.5)の日だから、弁当が(あまり売れなかった 50)。
今日は(雨 1.0)の日だから、弁当が(ほとんど売れなかった 20)。
機械学習のモデルでは、定型の文章は削除してしまい、数値だけ残している、という状態に通常はします。
0.0 → 100
0.5 → 50
1.0 → 20
推論の例として、
今日は(どしゃ降り 2.0)の日だから、弁当が(売れなかった 3)。
2.0 → 3
という風に「どしゃ降り」の直接的なデータは存在しないが、推論をすることはできる、というのが特徴です。
訓練に使用するデータは、因果関係が成立しているものや、相関関係が認められるものの方が良いです。
例
原因 = 雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
結果 = 売り上げた弁当の個数 0 〜
結果の項目数は通常 1 つですが、原因の方の項目数はいくつあっても構いません。項目数や、レコード数に関係なく、よしなに訓練・推論できるのが機械学習の良さです。
原因には、「予測値」と「実測値」があります。
予測値の例: 天気予報による雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
実測値の例: 実際の天気を観測することにより知り得た雨の降り具合 0.0 〜 (晴れ = 0.0、雨 = 1.0)
推論をしたい早朝の段階では、「実測値」の方は未知である可能性があります。
そのため、仮定を含めて推論することで情報量を増やし、その結果を元に意思決定をする、というやり方もあるかと思います。
これは、項目数を 3 にした場合の例えです:
今日は(晴れ 0.0)の予報があり、実際は(晴れ 0.0)であると、弁当が(よく売れた 100)。
今日は(晴れ 0.0)の予報があり、実際は(曇り 0.5)であると、弁当が(そこそこ売れた 70)。
今日は(晴れ 0.0)の予報があり、実際は(雨 1.0)であると、弁当が(あまり売れなかった 15)。
実測値である実際の天気の部分を、試しに「晴れ 0.0」「曇り 0.5」「雨 1.0」と仮定して推論をしてみる、という具合です。
こういった推論をするためには、毎日、天気予報と、実際の天気と、弁当の売上個数を記録して数値データ化し、日々、モデルを訓練する必要があります。
運用が大変ですが、機械学習には、こうった使い道もあるという事で理解頂ければ幸いです。
2024年05月05日
オフラインの設定 と shi1005_flags の値
SHARE_INFO_1005 structure (lmshare.h)
https://learn.microsoft.com/en-us/windows/win32/api/lmshare/ns-lmshare-share_info_1005
---
shi1005_flags
8192
SHI1005_FLAGS_ENABLE_HASH
---
[共有フォルダーにあるファイルやプログラムはオフラインで利用可能にしない]
shi1005_flags
48
CSC_CACHE_NONE
---
[共有フォルダーからユーザーが開いたファイルとプログラムは、すべて自動的にオフラインで利用可能にする] と [パフォーマンスが最適になるようにする]
shi1005_flags
32
CSC_CACHE_VDO
---
[共有フォルダーからユーザーが開いたファイルとプログラムは、すべて自動的にオフラインで利用可能にする]
shi1005_flags
16
CSC_CACHE_AUTO_REINT
---
[ユーザーが指定したファイルおよびプログラムのみオフラインで利用可能にする]
shi1005_flags
0
CSC_CACHE_MANUAL_REINT