序文 人工知能は現在、あらゆる分野で最もホットな技術です。最初の2年間が「インターネット+」だったとすれば、過去2年間は「AI+」であるに違いありません。ディープラーニング技術を使用してあらゆる分野に力を与え、効率を向上させることは、エンタープライズインテリジェンスの1つの方向です。 AIの統合の方向性としては、一般的に2つのタイプがあります。1つは定量投資やスマート投資アドバイザーなどの業界統合です。 定量投資とは、コンピューター技術と特定の数学モデルを使用して投資概念を実践し、投資戦略を実現するプロセスです。投資戦略を厳密に実行できるため、貪欲、恐怖、運などの人間の弱点を克服でき、認知バイアスも克服できます。さらに、膨大なデータを多角的に観測することで、市場を迅速に追跡し、投資機会を拡大することができます。 例えば、国内のオンライン教育機関の中には、AIと教育に取り組んでいるところが数多くあります。 English Fluency は音声認識を使用して、ユーザーの発音が正確かどうかを判断します。Yixue Education は意味認識を使用して、高校と小学校の質問の背後にある知識ポイントをマイニングし、ユーザーが質問に答えられない理由を診断するために使用され、対象を絞った練習の利便性のために、関連する可能性のある小学校、中学校、高校のさまざまな知識ポイントをリストします。Xiaoyuan Search は OCR 技術を使用して質問のテキスト情報を取得し、最終的にデータベース内の質問と知識ポイントを一致させます。 もう 1 つはテクノロジーの組み合わせです。テクノロジーとは、運用・保守、開発、操作、検索、推奨など、インターネット企業の実務者のさまざまな役割を指します。こちらも今回ご紹介するメインコンテンツとなります。ここでは、一般的には一定の規則性を伴う反復作業など、多くのことを行うことができますが、これらの規則性をルールで記述するのは簡単ではありません。ディープラーニング手法を使用して、規則性を強化してみることができます。 もちろん、ディープラーニングや機械学習は、上記 2 つのケースの組み合わせで成功を収めることができますが、それは以下の主要な要因と切り離せません。
これらについても一つずつ詳しく説明していきます。最後に、ディープラーニングで遭遇するいくつかの課題と、それらを解決するためのアイデアを紹介します。 1. ディープラーニングを自分の仕事にどう取り入れるか インテリジェントな運用とメンテナンス 現在、運用と保守の開発は、ルールベースから学習ベースへの移行を経ています。インターネット企業における運用・保守の最大の課題は、ルールを手動で指定することが難しいことです。大規模企業では、次のような特徴があります。 大規模:
迅速な変更:
では、運用と保守において、どのようなシナリオで機械学習アルゴリズムを導入できるでしょうか? シナリオ 1: 根本原因分析 (RCA) モジュールアラームイベント間の相関関係を自動的にマイニングします。これには、多数のインシデントチケットとプロジェクトプロセスを学習して、自動的に根本原因を特定する必要があります。 シナリオ2: PV異常を自動的に検出する 主な目的は、PV 変化曲線を調査し、異常なポイントをマークすることです。データ量が不十分な場合は、いくつかのログを人工的にシミュレートして、異常なピーク値と谷値を作成することもできます。 シナリオ3: パフォーマンスのボトルネックを自動的に分析し、最適化を提案する シナリオ4: KPI例外をバージョンのリリースに自動的に関連付ける KPI (主要業績評価指標) は、サービスのパフォーマンスを測定するために使用される主要な指標です。サーバーの異常な動作には、潜在的なリスク、障害、バグ、攻撃などが含まれます。 KPI 異常検出とは、KPI 時系列曲線上の異常な動作を識別し、診断と修復を実行することを指します。 シナリオ 5: ソフトウェア更新がアプリケーションに与える影響を自動的に評価する (PV、ネットワーク カードのスループット、メモリ使用率) シナリオ6: オンラインインシデントレポートから貴重な情報を抽出する 現在、社内の事故報告書は比較的決まった形式になっています。NLP技術+キーワード抽出+固有表現認識を使用して、PV、KPIなどの指標と組み合わせて事故報告書を分析することができます。 上記のシナリオにおけるこれらの主な要因に対する解決策は次のとおりです。
同時に、私たちが関心のあるKPIを時系列データに抽象化すると、eコマースの売上データやゲームのKPI指標との間に本質的な違いはなくなり、業界を組み合わせることで、インテリジェントな売上予測やゲームオンラインピークモニタリングも可能になります。アルゴリズムレベルに抽象化すれば、いずれも優れた適用シナリオを持つ可能性がありますが、アルゴリズムレベルでさらに投資すれば、運用と保守そのものを超えてインテリジェントな運用が可能になります。 インテリジェントな操作 WeChat自動操作ツールとWeChatグループ閲覧アシスタント。 シナリオ 1: WeChat グループ読み取りアシスタント: 毎日グループが多すぎて、ほとんどのグループが「メッセージ邪魔しない」状態になっています。グループ内の有用な情報をインテリジェントに読み取り、毎日のグループメッセージレポートを生成できるようになることを期待しています。 データと注釈: 個人のすべてのグループ メッセージを取得するためのフック メソッドは多数あります。グループ メッセージを人工的に分類することは、実際には「有用」と「無用」の 2 進分類問題に抽象化されます。 たとえば、「人工知能」に関連するグループでは、AI について議論するチャットは「役に立つ」と分類され、「へへ」や絵文字は「役に立たない」と分類されます。 「ギター弾き語り」関連グループでは、ギター関連のチャットや共有記事が「役に立つ」に分類され、それ以外は「役に立たない」に分類されます。 モデルとアルゴリズムについては、感情分析にディープラーニングを使用する論文やオープンソース プロジェクトを参照できます。例えば: https://github.com/yala/introdeeplearning ただし、チャットと発言は異なります。この背後には「相互作用があるかどうか」という本質的な違いがあります。相互作用が関与すると、感情分析基準の複雑さは 1 桁以上増加します。 最初の理由は、隠された情報のほとんどがテキストに表示されないことであり、2 番目の理由は、対話型ダイアログ情報のジャンプにより、LSTM のメモリがあまり効果的ではないことです。 いくつかの方法では、NLU の意味理解を使用してテキストから重要なエンティティと意図を抽出し、それらを機能として学習に追加し、一連のルールを追加して、ユーザーのモデリング モデルと組み合わせて、チャット インタラクションの「効果」を決定できます。 シナリオ2:WeChat自動操作ツール:B側の場合、複数のユーザーグループを同時に管理する方法。現在のサードパーティツールのWeChatグループメッセージ転送機能に加えて、インテリジェント管理を導入できる場所は実はたくさんあります。 たとえば、ユーザーがグループで広告を投稿するという問題は、バイナリ分類問題に抽象化でき、NLP などのテクノロジーを使用して広告を識別できます。 たとえば、グループ内のユーザーの過去のメッセージ行動をキャプチャして分析し、職業、年齢などの情報を分析し、ディープラーニングを使用してユーザーのポートレートラベルをモデル化することができます。 参考文献: http://www.aclweb.org/anthology/W15-1705 この方法により、ユーザー数が極めて多い場合に、製品を消費する可能性が最も高い潜在的なユーザーを選別できることが期待されます。 スマートテスト インテリジェントテストには2つの種類があります。1つはインテリジェントな手段を使用してオンライン製品をテストすることであり、もう1つはディープラーニングモデル自体を導入するディープラーニング方式をテストすることです。 シナリオ 1: たとえば、新しい機能がリリースされると、UI インターフェイス操作の観点から自動テスト プロセスが実行される場合があります。インターフェース上の各機能を順番に実行し、期待どおりに動作するかどうかをカウントします。もう 1 つの例としては、さまざまな API インターフェースをテストし、インターフェースに渡されるパラメーターを 1 つずつチェックし、結果のデータが期待どおりかどうかをテストすることが挙げられます。現在、この分野では、インテリジェンスが導入されている場所をまだ観察しており、皆さんとコミュニケーションを取りたいと思っています。 シナリオ 2: ディープラーニング システムをテストするためのホワイト ボックス フレームワークである DeepXplore などのディープラーニング システムをテストするために使用されるツール。その主な機能は、(1) ディープラーニングシステムロジックのさまざまな部分をテストするために、入力と可能な限り多くの異常なケースを生成できること、(2) 人間の介入なしにディープラーニングシステムの誤った動作を識別できることです。また、同様の機能を持つ複数のディープラーニング システムを相互参照として使用することで、誤った動作を手動で検査する必要がなくなります。 参考文献: https://arxiv.org/abs/1705.06640 化学や製薬工学などの分野とディープラーニングを組み合わせたもの この統合は、マクロからミクロまで複数のレベルで発生する可能性があります。 たとえば、上の写真は SVM と決定木を使用して無機有機ハイブリッド材料を発見したもので、Nature の表紙に掲載されました。 新薬の合成などのマクロレベルでは、意味のある薬物分子構造は通常、薬物分子化合物ライブラリを研究することによって発見されます。さまざまな機械学習手法を使用して、急性毒性、皮膚感受性などの化合物の毒性、および発がん性、催奇形性、さまざまな臓器への毒性などのさまざまな慢性毒性を予測できます。 微視的レベルでは、理論化学に関係します。たとえば、薬物分子は、原子をノード、結合をエッジとしてグラフに抽象化することができ、分子の対称性を使用してその特性を予測できます。 参考: 量子化学のためのニューラルメッセージパッシング 化学にディープラーニング手法を導入するというのは、実際には分析を統計に置き換えるというアイデアです。たとえば、自然言語処理の分野では、プログラミング言語と同様に、文法規則を記述し、文法分析を実行し、さらに検討するための文法ツリーを取得するという初期のアプローチがとられました。その後、単語 A がどのような構成要素であるかを考慮せず、単語 A が別の単語 B の後に現れる確率のみを調べる統計的手法が採用されました。化学も同様です。DFT を使用してシュレーディンガー方程式の近似解を見つける代わりに、累積的な現象に基づく統計的手法を使用して分子の特性を予測します。 解決すべきいくつかの主要な要因: データと注釈:つまり、化合物を表現する方法。たとえば、毒性については、発生した時点で記録しますが、その量はそれほど多くありません。 PaDEL など、化合物を記述するための既製のソフトウェアは多数あります。これらの記述子は、化合物に含まれる芳香族環の数、sp2 混成炭素原子の数など、化合物の構造情報を計算します。また、化合物の電荷分布や極性、その他の特性も計算します。 検索と推奨 現在、推奨や検索に強化学習を導入することは非常に効果的な手段です。強化学習は現在、報酬の最大化に基づくもの、確率に基づくもの(Policy_based)(次に実行するさまざまなアクションの確率を直接出力し、その確率に基づいてアクションを実行する)、および値に基づくもの(Value_based)(すべてのアクションの価値を出力し、最も高い値に基づいてアクションを選択する)に分類できます。 1ラウンドに1回更新するか、アクションごとに更新するかなど、状態更新戦略による区分があります。 主なモデリング方法は、検索/推奨システムをエージェント、ユーザーを環境と見なすことです。これにより、製品推奨問題は典型的な順次決定問題として考えることができます。エージェントによるソート戦略の各選択は試行錯誤のプロセスと見なすことができ、ユーザーからのフィードバック、クリックスルートランザクションなどは環境からの報酬と見なすことができます。この試行錯誤のプロセスを繰り返して、エージェントは徐々に最適なソート戦略を学習し、累積報酬を最大化します。 たとえば、商品を推奨するシナリオでは、ユーザーの以前の状態でのクリック、注文、お気に入りなどの動作を使用して、現在の状態の商品リストが推奨されます。 参考文献:
ビジョンと産業の融合 ビジュアル業界と電子商取引業界の組み合わせにより、すでにいくつかの実用的な製品アプリケーションが生まれています。たとえば、Moshanghua Technology は、ビデオやライブ ストリーミング プラットフォーム上でリアルタイムのステッカー広告とインタラクションを提供しています。Malon Technology は、ユーザーが衣服の写真をアップロードして、類似した衣服を含む写真を検索できるインテリジェントなファッション検索を提供しています。 Amazon Go は視覚技術を利用して、オフラインの無人スーパーマーケットも構築しています。ビジョンと業界の間には統合ポイントも数多くあります。 では、AI+ のプロセスではどのような問題に直面し、それをどのように解決するのでしょうか? 2. ディープラーニングが直面する4つの課題と進歩的なソリューション 少量の注釈データ 現在、データのラベル付けは、特にデータ量が多い場合には非常にコストがかかります。したがって、ラベルなしデータまたはできるだけ少ないラベル付きデータから学習する 1 つの方法は、生成的敵対ネットワークと二重学習の考え方を使用することです。 機械翻訳(中国語から英語への翻訳)、音声認識と音声合成、画像の説明と画像の生成、質問への回答と質問の生成など、AI分野の多くのタスクは対称的なタスクです。 デュアルラーニングの考え方は、2つのニューラルネットワークを使用して対称的なタスクを個別に学習し、学習結果とソースデータ間の類似性をトレーニングに使用することです。 もう 1 つの方法は、自動注釈ツールを作成することです。精度はあまり高くないかもしれませんが、最初にラベル付けされたデータを使用して自動ラベル付けモデルをトレーニングします。この自動注釈ツールを使用して、残りの大量のデータに注釈を付け、最後に手動のレビューと校正のプロセスを追加します。 モデル自体が大きすぎます。精度を落とさずにモバイルデバイスに適用するにはどうすればよいでしょうか? 現在、ハンドヘルドデバイスでの AI モデルの使用は最先端のトレンドです。これにより、コンピューティングを高速化するためのさまざまな方向性が生まれ、その中で最も重要な 2 つはメモリ空間と速度の最適化です。最初のアプローチはモデルを合理化することです。これにより、メモリ空間を節約し、計算を高速化できます。2 つ目は、フレームワークの実行速度を高速化することです。フレームワークの実行速度に影響を与える主な要因は、モデルの複雑さと各ステップの計算速度の 2 つです。 モデルを合理化する主な方法は、量子化や重みプルーニングなどの低い重み精度を使用することです。プルーニングとは、重みが小さい接続を切断し、しきい値を下回る重みを持つすべての接続をネットワークから削除することを指します。 アクセラレーション フレームワークの実行速度は、通常、モデルのパラメータには影響しません。これは、行列間の汎用乗算 (GEMM) 演算を最適化しようとするため、畳み込み層 (畳み込み層は、最初にデータに対して im2col 演算を実行し、次に GEMM 演算を実行することによって計算されます) と完全接続層の両方に影響します。 ここでの定量的とは、金融における定量的取引ではなく、離散化を指します。量子化とは、32 ビット浮動小数点数よりも少ないスペースを使用してモデルを保存および実行するための包括的な用語であり、TensorFlow の量子化の実装では、保存と実行の詳細がマスクされます。 ニューラル ネットワークのトレーニングには速度と精度が求められ、トレーニングは通常 GPU 上で実行されるため、浮動小数点数の使用による影響はほとんどありません。しかし、予測段階では浮動小数点数を使用すると速度に影響します。量子化により、高い精度を維持しながら速度を上げることができます。 ネットワークを量子化する主な動機は 2 つあります。当初の動機は、モデル ファイルのサイズを削減することでした。モデル ファイルは多くの場合、大量のディスク領域を占有します。たとえば、ImageNet でトレーニングされたいくつかのモデルはそれぞれ 200 MB 近くあり、モデルは多数のレイヤーに分散された重みを格納します。モデルを保存するときに 8 ビット整数を使用すると、モデルのサイズを元の 32 ビット サイズの約 25% に削減できます。モデルをロードした後、計算中に数値は 32 ビット浮動小数点数に変換されるため、既存の浮動小数点計算コードは変更せずに正常に実行できます。 量子化のもう一つの目的は、予測プロセスに必要な計算リソースを削減することです。これは、モデルをより高速かつ低消費電力で実行できるため、組み込みアプリケーションやモバイル アプリケーションでは非常に有意義です。アーキテクチャの観点から見ると、8 ビット整数は 32 ビット整数よりも頻繁にアクセスされます。8 ビット整数を読み取る場合、32 ビット浮動小数点数の 1/4 のメモリ帯域幅のみが必要です。たとえば、32 ビットのメモリ帯域幅では、一度に 4 つの 8 ビット整数にアクセスできますが、一度にアクセスできる 32 ビット浮動小数点数は 1 つだけです。また、SIMD 命令を使用すると、1 クロック サイクルでより多くの計算を実行できます。一方、マイクロコントローラやデジタル信号プロセッサ(DSP チップ)など、組み込みチップの多くは 8 ビットと 16 ビットであり、8 ビットはこれらを最大限に活用できるため、組み込みデバイスをより有効に活用できます。 さらに、ニューラル ネットワークは、量子化によって精度が失われる (この損失は一種のノイズと見なすことができます) ため、全体的な結果の精度が損なわれることがなく、ノイズに対して非常に堅牢です。 低精度形式を使用して直接トレーニングすることは可能ですか? ほとんどの場合、答えは「できません」です。トレーニング中、順方向伝播はスムーズに進行しますが、逆方向伝播では勾配を計算する必要があることが多いためです。たとえば、勾配が 0.2 の場合、浮動小数点数を使用すると適切に表現できますが、整数では適切に表現できず、勾配が消えてしまいます。そのため、勾配を計算するには 8 ビット以上の値を使用する必要があります。そのため、このセクションの冒頭で紹介したように、モバイル端末でモデルをトレーニングするアイデアは、通常、PC 上で浮動小数点モデルをトレーニングし、その後、モデルを直接 8 ビットに変換して、モバイル端末で 8 ビット モデルを使用して予測処理を実行するというものです。 小さなサンプルから効果的に学ぶ方法 ディープラーニングでは、多くの場合、大量のデータが必要になります。データ量が不足していたり、すべてのシナリオをカバーするのに不十分な場合は、ディープラーニング、ナレッジグラフ、論理的推論、シンボリック学習などを組み合わせ、人間がすでに持っている事前知識の一部をニューラルネットワークと組み合わせてトレーニングする必要があることがよくあります。 たとえば、論文「物理学とドメイン知識によるニューラル ネットワークのラベルフリー監視」では、ビデオ内の動く枕の軌跡を検出するために、「物理学とドメイン固有の知識を使用して、ニューラル ネットワークがラベルなしの監視学習を実行できるようにする」方法が紹介されています。材料に関する知識と組み合わせると、枕の動きの軌跡は二次放物線になるはずで、これにより、リンがビデオの各フレームで枕の動きの軌跡をマークする必要性が軽減されます。 データの希薄性 データのスパース性は、多くのシナリオ、特にパーソナライズされた推奨システムで調整を必要とします。処理される推奨システムの規模はますます大きくなり、ユーザーと製品の数は数億に達することが多く、2 人のユーザーの選択の重複は非常に小さく、製品に対するユーザーの消費、クリック、コメントの行動はさらにまれです。データが非常にまばらであるため、関連性分析に基づくほとんどのアルゴリズム (協調フィルタリングなど) は効果がありません。 したがって、何らかの特徴抽出法やユーザーおよび製品のクラスタリング法が一般的に使用されます。 Amazon の DSSTNE (https://github.com/amznlabs/amazon-dsstne) は、スパース シナリオ専用のオープン ソースのディープラーニング フレームワークです。スパースシナリオでは、DSSTNE は他のディープラーニングライブラリよりもはるかに高速に動作します。推奨問題や多くの自然言語理解タスクはこの分野に属します。 最後に、誰もが自分の分野で質問をしたり、AI ソリューションについて一緒に議論したりすることを歓迎します。 |
<<: 1 つの記事で TensorFlow ディープラーニングをマスターする
>>: オープンソースフレームワークとコンピューティング能力の向上により、AI は第 3 のクライマックスを迎えています。AI を教育とどのように組み合わせることができるでしょうか?
AI を活用して製造効率を向上させ、インテリジェントな自動化で業界を変革します。製造業は人工知能技...
みなさんこんにちは。私はFeng Kiteですオーディオおよびビデオ ファイル内のオーディオをテキス...
[[205684]] Tu Weiwei 氏は、Fourth Paradigm Prophet プラ...
5G が推進し主導する、デジタル技術変革の新世代が正式に到来しました。今日、インターネットの急速な変...
工学部の学生として、私たちは行列や行列式などの線形代数の知識を長い間使用してきました。この記事では、...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[201727]]序文AlexNet が ILSVRC 2012 ImageNet 画像分類コンテ...
2030 年までに RSA 暗号を解読できるマシンが登場するでしょうが、まずは量子センシングやその他...
[[391106]] 1956年、人工知能元年。その夏、米国ニューハンプシャー州ハノーバーの小さな町...
[[276736]] AI顔変換ソフトウェアZAOの人気により、顔データアプリケーションのパンドラの...