メルマガ登録
こんにちは。アナリティクスサービス部の栗原です。
昨年度(https://blog.brainpad.co.jp/entry/2019/12/06/110050)(https://blog.brainpad.co.jp/entry/2019/12/20/112351)に続き、機械学習エンジニアコースのインターンシップを開催しましたので、その様子をお伝えしていきます!
8月18日(火)~9月11日(金)の4週間で実施し、3名の学生の皆さんに参加いただきました。
今年のテーマは、製品の検品自動化を目的とした「画像を用いた異常検知アルゴリズムの精度向上」です。
学生の皆さんには、ブレインパッドでの働き方をリアルに体験してもらうために、極力実際のプロジェクトに近い形進行しました。
進め方、設定
体制
実際のプロジェクトに合わせた一連の流れを、下記のスケジュールで進めました。
全ステップを4週間で行うという、濃密なスケジュールでした。
当社社員のフォロワーが適宜アドバイスをしつつも、基本的には学生の皆さん主体で進めていただきました。
以降、それぞれのステップにおける具体的な実施内容を簡単にご紹介します。
RFPを学生の皆さんに共有し、読み込んでもらったあと、当社社員のクライアント役に対して要件ヒアリングを行ってもらいました。
「実際の製品における不良品と良品の割合はどのくらいか?」
「アルゴリズムの実行速度の許容範囲は?」
など、ビジネス理解のための質問や、アルゴリズム選定のための質問、今後の展開についての質問など、様々な観点で整理してヒアリングを行ってもらいました。
ヒアリングを踏まえた上で実施計画書を提出していただき、プロジェクトがスタートしました。
当社のプロジェクトで実際に用いたデータを扱ってもらいました。
データ形式の確認やデータ数の集計をはじめ、実際に画像を見ながら学生の皆さん同士でディスカッションをしていました。
既存モデルの検証として、具体的にどんな種類の不良が検知できていないのか、それらの特徴は何か、などを整理してもらいました。
また、手法調査では計20本以上の論文を調査してもらい、その中から既存モデルの課題に最も合うと考えられる手法を各人に選択してもらいました。
分析設計に従い、Google Compute Engine 上で実装を進めてもらいました。
手を動かすのは学生の皆さんがメインでしたが、適宜困ったことなどがあれば、オンライン・オフラインでフォロワーに相談をしてもらいました。
今回のインターンでは、中間報告と最終報告の計2回、報告を行っていただきました。
↑中間報告(オンライン)の様子
↑最終報告(オフライン)の様子
今回学生の皆さんが最終的に実装した手法は計4つです。それぞれ分担して進めてもらいました。
各手法に関して、簡単にご紹介します。
画質評価指標のSSIMを、既存モデルの損失関数として採用するというシンプルなアイデアです。
既存モデルでは、binary crossentropyを損失関数としていました。
binary crossentropyでは、ピクセルごとに算出されるため、画像全体の類似度を算出できないというのが課題でした。
一方で、SSIMは画像をwindowに区切ってSSIMを計算し、画像全体にwindowを少しずつずらして各SSIMの平均を算出するので、人間の感覚に近い誤差を検出できます。
下記図の左の画像は元画像、右上は元画像を均等に明るくした画像、右下はランダムに明るくor暗くした画像です。(https://ece.uwaterloo.ca/~z70wang/publications/SPM09_figures.pdf)
人が見たとき、右上の画像の方が元画像との距離は近いように感じるかと思います。
ただし、MSEを計算するとどちらの画像も同じ値になります。
一方、SSIMを計算すると右上の画像の方が距離が近い=人の感覚と近い結果となります。
元画像に加工(スケール変更・グレースケール・ランダム回転)を加えた画像から元画像を復元するようにモデルを学習させます。
既存モデルのアルゴリズムよりも復元のタスクを難しくし、入力画像と出力画像の差異を大きくすることで、正常データと異常データの復元エラーのギャップ拡大による異常検知の精度向上が期待できる手法です。
今回検証した手法の中で、唯一の教師あり学習です。Deep Support Vector Data Description (DSVDD)の派生手法になります。
Fully Convolutional Networkを利用して位置情報を保持することで、出力画像をそのままヒートマップとして利用可能にします。元画像と同解像度のヒートマップが必要な場合は、受容野を考慮することで適切にアップサンプリングします。
名前の通り、AnoGAN((https://arxiv.org/abs/1703.05921))を高速化した手法になります。
AnoGANからの変更点は下記の通りです。
今回検証した4つの手法で最も精度が向上したのは**SSIM**でした。
難易度が高いテーマでしたが、目的である精度向上をしっかりと達成していただきました!
クライアントへのヒアリングから始まり、なぜその手法を選んだのか、なぜその結果になったのか、運用を見据えると何を考えなければならないかなど、アルゴリズムの追求だけではなく、しっかりと顧客価値に向き合っていただいた結果かと思います。
新型コロナウイルス対策を徹底した上で、人数を制限し開催しました。
着席形式だったため落ち着いて話すことができ、交流を深めることができました。
※写真を撮り忘れてしまったのでイメージだけでも共有いたします・・・。
全体的にとてもポジティブな意見をいただきました!
いかがでしたでしょうか?
10月より、エンジニアコースとデータサイエンティストコースの2022年新卒採用本選考を開始しています。
是非エントリーをお待ちしております!
新卒採用とあわせて、中途採用についてもエンジニア・データサイエンティスト・営業やコンサルタントなどのビジネス職を積極的に採用しています。
http://www.brainpad.co.jp/recruit/
今回のインターンシップに参加していただいた学生の皆さん、そして本記事をご覧になっていただいた方々が、ブレインパッドを魅力に思っていただけたら嬉しいです!
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説