王の英雄を見極める – PM の機械学習初心者の旅

王の英雄を見極める – PM の機械学習初心者の旅

[[204836]]

基本概念

先月、私は機械学習を原理レベルから理解し始め、オンライン電子書籍「ニューラルネットワークとディープラーニング」を教科書として選びました。この本は本当に優れていて、ニューラルネットワークと機械学習の背景知識がない PM でも基本原理をすぐに理解することができました。

この本の第 1 章の読書メモを添付します。PM の場合は、第 1 章を読むだけで十分です。この章では、基本的な概念と方法論が非常にわかりやすく説明されています。読み終えた後、新しい世界への扉を開いたような気がしました。

行動のきっかけ

先週末、Twitch が開発した製品である ClipMine を見ました。これは、ライブゲーム画面に基づいて、オーバーウォッチやハースストーンのプレイヤーがプレイしているヒーローとランクを識別し、視聴者が複数のアンカーの中から見たいヒーローをフィルタリングできるものです。国内のライブ放送業界にも実際にそのような需要があるのだと考えて、急に試してみたくなりました。例えば、Honor of Kingsの何千ものライブストリームの中から現在再生中のヒーローを識別し、視聴者が見たいヒーローを選択して注意深く視聴できるようにするなどです。

何かしたくて手がうずうずしているし、週末だし、何かしないといけないと思う。

エンジニアリング分析

King of Glory ゲームでは、プレイ中のヒーローを識別するためのアイデアがいくつかあります。

1. ゲーム開始前のヒーロー選択インターフェース

2. ゲーム開始後にリソースをロードする際のロードインターフェース

3. ゲーム中に画面中央にいるヒーロー

4. ゲーム中の画面右下にあるスキルアイコン

分析は次のとおりです。

  • 生放送全体の時間の中で、1と2の時間の割合が非常に短く、プレイヤーがゲーム進行中を直接放送するとヒーロー情報を取得できなくなります。
  • また、1と2のインターフェースでは、プレイヤーの現在位置は固定されておらず、プレイヤーの位置の判定も必要となると、プロジェクトの複雑さが少なからず増大します。
  • 主人公は常にゲームの中心にいるため、3は実際にはトレーニング教材として非常に適しています。しかし、ヒーローにはそれぞれ異なる動きや向きがあることを考えると、最も重要なことは、このゲームでは 1 人のヒーローに対しても異なるスキンが用意されているということです。これらすべての条件を考慮すると、一方ではより多くのトレーニング教材が必要となり、他方では機械学習の難易度が高まります。
  • インターフェイス 4 では、ヒーローのスキルは長期間変化せず、位置も安定しています。ヒーローはライブ放送時間全体の中で高い割合で登場します。唯一の大きな変更点は、スキル発動間のインターバルのカウントダウンです。すべての要素を考慮すると、トレーニング教材には 4 が最も適しています。

これを確認した後、プロジェクト全体の運用プロセスを整理することができます。

  1. 60 人のヒーローに対応するゲーム内画像を入手します。各ヒーローにつき 1000 枚以上の画像が必要です (推測しただけで、適切な画像数はわかりません)
  2. 1の画像の右下部分を機械学習のトレーニングデータとして切り取る
  3. 機械学習コードを実行して、さまざまなヒーローのスキルを識別できるモデルをトレーニングします。
  4. 識別するライブストリームから画面を抽出し、右下隅のスキル画面をキャプチャし、3のモデルを使用してそれがどのヒーローのスキルであるかを識別し、ライブストリームヒーローの識別を完了します。

プロセスは明確ですが、作業量は後ほど最も大きくなります。まずは研修資料の入手方法から見ていきましょう。

材料を集める

機械学習に携わる人なら誰でも、コードを書くのが最も難しい部分ではなく、高品質のトレーニング資料を集めることが最も難しい部分であることを知っています。 60人以上のヒーローに対応する1,000枚の写真を素早く入手するにはどうすればいいでしょうか? 60,000枚以上の写真を探すのが難しいのは言うまでもなく、見つけた後、どの写真がどのヒーローであるかを手動でマークする必要がありますか? 本当にこれをしなければならない場合、おそらく1人で完了するのは難しいでしょう。

今回私が考えた方法は、Youkuで「Honor of Kings」+「英雄の名前」を直接検索すると、プレイヤーが録画した英雄のビデオがたくさん見つかるというものです。そこで、チームのクラスメイトに協力を依頼し、各ヒーローの戦闘ビデオを 1 本ずつ急いで集めました。次に、Adapter などのソフトウェアを使用して、ビデオを 1 秒あたり 1 フレームで数千の画像に変換します。 (ただし、最初はアダプタソフトウェアが見つからなかったため、OpenCVを使用してビデオからフレームごとに画像を読み取りました。)

唯一の欠点は、Youku のビデオでは戦闘プロセスそのものだけでなく、プロデューサーが追加した特別なビデオ効果、テキスト、トランジションアニメーションなども含まれていることが多いことです。最初は注意を払わず、トレーニング教材の一部を汚染してしまいました。その後、この問題を解決するためのクリーンなビデオをいくつか見つけました。

このようにして、ヒーローマーキング情報を含む約10万枚の写真が簡単に入手できました。

残りは簡単です。OpenCV を使用して画像を均一にトリミングします。当初は 3 つのスキルに領域が切り取られていましたが、この領域は広い範囲をカバーするため、不要な画像情報が多く含まれてしまい、満足のいくトレーニング結果が得られませんでした。後期の最適化の段階で、各ヒーローのスキルは実際にはユニークであり、すべてを認識する必要はないことに気付きました。そのため、すべての素材を2番目のスキルにカットしたところ、認識精度が大幅に向上しました。

技術的実装

Google の TensorFlow は使いやすく、パフォーマンスも良いと聞いています。G 製品なので当然 Python との相性も良く、長年 Python を書いてきた私には合っています。そこで、TensorFlow のドキュメントを読み始めました。

その週末の夜は、TensorFlow と OpenCV を virtualenv にインストールする方法に多くの時間を費やしたと言わざるを得ません。インターネット上のチュートリアルはどれも、Mac では完全にスムーズに完了できませんでした。幸い、Google と Stack Overflow の助けにより、両方のコンポーネントを Mac で正常にコンパイルできました。

すぐに、TensorFlow の公式チュートリアルで画像認識に関する記事を見つけました。デモを実行しましたが、問題なく動作しました。そこで、独自のモデルをトレーニングする方法を研究し始めました。

公式チュートリアルに従ったため、Inception V3 ネットワーク構造を直接使用しました。約 10 万枚の画像があり、GPU のない Macbook Pro で最初のトレーニングを完了するのに 10 時間近くかかりました。

ただし、最も時間のかかる部分はボトルネック値の計算です。この値は各トレーニング中に変化しないためです。そのため、チュートリアルでは、各画像のボトルネック値を最初に計算した後、それを保存します。このようにして、次回のトレーニングでは、新しく追加された画像素材のボトルネック値を計算するだけでよく、毎回全額を計算する必要はありません。この最適化により、効率が飛躍的に向上します。

この時すでに日曜の午前 3 時だったので、すぐにモデルを実行して就寝しました。

パフォーマンスチューニング

日曜日の正午に目覚めると、すでに最初のトレーニングランが完了していました。すぐに新しいモデルを持ってさまざまなテストを行ったところ、精度は想像以上に高かったです。しかし、「素材の収集」セクションで述べたように、3 つのスキルを識別することから始まるため、一部のヒーローを識別するには理想的ではありません。

すべての素材を1枚のスキルスクリーンショットに調整した後、再度実行したところ、結果が出たのはすでに日曜日の夕方でした。現時点では、私が見つけたテスト画像に基づく精度率には失敗した例はありません。

現時点では、1 つの画像を認識するのに約 5 秒かかりますが、これは許容できないほどではありませんが、もっと高速化したいと考えています。 Nvidia グラフィック カードがない場合は、TensorFlow をローカルでコンパイルして、TensorFlow がローカル CPU の SSE や AVX などの命令を使用して計算を高速化できるようにするしかありません。 Mac で TensorFlow をコンパイルする方法については、こちらをご覧ください。

追加機能

私たちはすでにローカルでヒーローを完璧に識別できますが、より多くの同僚にこの機能を体験してもらいたいと常に思っています。火曜日の夜、家に帰ってから、ItChatで書いたWeChatロボットを思い出し、すぐにそのロボットをKing of Gloryの認識コードと組み合わせ、WeChatでロボットにゲームの画像を送ると、ロボットはすぐに画像のヒーローが誰であるかを返信しました。

結論

実際の学習・開発時間は土曜日の午後8時から午前3時までです。この8時間で、機械学習の魅力と実装の詳細を原理とコードレベルから理解し、本当に別の世界への入り口と将来の無限の可能性を垣間見ることができました。

最も大きなインスピレーションは、将来のプロダクト マネージャーが製品ロジックを設計することを考え始めたことです。彼らが機械学習を理解すれば、これまでは不可能だと考えられていた多くのことが製品ロジックの一部になるでしょう。この新しい認識を確立し、新しいツールをうまく活用できるかどうかが、将来、特定の分野における優れたプロダクトマネージャーと劣ったプロダクトマネージャーを区別することになるでしょう。

学習は、PM が決してやめるべきではない生存スキルです。

<<:  アンドリュー・ン氏の新演説:AIは業界の状況を変えており、企業の障壁はアルゴリズムではなくデータである

>>:  ディープラーニング: オートエンコーダの基礎と種類

ブログ    

推薦する

...

CES 2024 AIスマートホームのハイライト

ChatGPT が AI を話題にしてから 1 年以上経ちましたが、今年の Consumer Ele...

Karpathy の新しいビデオが再び人気に: GPT Tokenizer をゼロから構築

技術の第一人者カパシー氏がOpenAIを去った後、彼のビジネスは非常に活発になっています。新しいプロ...

柔らかいロボットの進化:優しくて怖い

[[387359]] 30年以上前、エドワード・シザーハンズの「ナイフがなければ、君を守ることはでき...

AIのジレンマをどう解決するか?

今日の大手企業が AI におけるいくつかの大きな課題をどのように克服しているか。概要:多くの企業はビ...

AIインテリジェンスを活用して企業の効率性を向上させる方法

人工知能はさまざまな分野から深い注目を集めており、人工知能分野のディープラーニングとインテリジェント...

人工知能認知学習—教育の未来?

人工知能(AI)はどこにでもあります。スマートセンサーを使用して素晴らしい写真を撮影するスマートフォ...

2019年の中国人工知能産業の競争環境の分析

近年、人工知能の技術と応用は成熟を続けており、人工知能市場の規模は徐々に拡大しています。中国情報通信...

...

なぜ「ハイエンド」アルゴリズムエンジニアはデータ移民労働者になったのでしょうか?

まず、Zhihu の「アルゴリズム エンジニアになるのはどんな感じか」という質問に対する私の回答を共...

今年の春節旅行は異例、テクノロジーが鍵

今年も春節の旅行シーズンがやってきましたが、今年は明らかに例年とは違います。今年は、感染症予防・抑制...

GoogleはDeepMind AIを使用して何千もの新しい素材を分析および予測しました

IT Homeは11月30日、GoogleのDeepMindが人工知能(AI)を使って200万以上の...

自動運転の 3 つの大きな問題点、つまり安全性に直接対処しますか?プレミアム?プライバシー漏洩?

2021年の上海モーターショーが終わったばかりですが、会場内外で自動運転が大きな注目を集めています...

ホーキング:人工知能やその他の技術の発展は人類を滅ぼすかもしれない

新浪科技報、北京時間3月15日、海外メディアの報道によると、スティーブン・ホーキング博士は最近、人類...

ハッカーはAIの顔を変える技術を使って就職活動を行っている。人工知能のセキュリティ問題は無視できない

米国での流行後、多くの企業が「在宅勤務」(WFH)モデルを採用しました。 FBIの刑事告訴センターは...