ブログ始めました。

NO IMAGE

アルカセット・コンサルティング(株) システム開発部の金田と申します。
アルカセットグループ技術陣による、情報発信をこれより開始します。
弊社は、コンサルティング業務をコアビジネスとし、お客様のビジネスの発展とともに、システム開発、保守運用、サービス提供と業容を拡大して参りました。


現在も、業務コンサルティングから、ITコンサル、開発、保守運用までをシームレスにご提供させていただくことをコアバリューとして活動しております。
従いまして、弊社エンジニア陣は、特定のお客様向けプロジェクトに携わっており、業務そのものをネタにしてブログを書く、ということが基本できませんので、直接の業務とは関連しないエンジニア個々人の興味の赴くままのネタが中心になる予定です。


弊社がビジネスとしてどのような活動を行なっているのか、という観点での情報発信ができませんが、
「どういう趣向を持ったエンジニアたちが集っているのか」はお見せできるのではないか、と考えております。


なお、オフィスでは、IT分野における技術書としては定評のあるオライリー出版の書籍を全巻揃えるなど、個々のエンジニアが興味の赴くまま個々のスキルを伸ばせる環境を用意できるようにしたい、と考えています。
このブログをきっかけとして、エンジニアに限らず、弊社に関心を持っていただける方を増やせるよう、情報発信して行きたいと思いますので、どうぞ、ご期待ください。


では、まず1発目として、ディープラーニング界で、今一番ホットな話題かもしれない、画像セグメンテーションに関する論文について、弊社エンジニアによる超訳をお届けいたします。

  ========================

Deep Learningを用いた背景除去
Gidi Shperber
Aug 28, 2017 · 16 min read

このポストは 我々のgreenScreen.AIでの仕事と調査について述べる。TwitterやLinkedin、あるいは我々のウェブサイト、www.shibumi-ai.com に感想やコメントを寄せてもらえると大変ありがたい。

イントロ

ここ数年間の機械学習を通して、私は常に本物の機械学習のプロダクトを構築したいと思っていた。

数ヶ月前、素晴らしいFast.AIのディープラーニングのコースを受講したら、星が揃っているように見え、私は機会を得ることができた:ディープラーニング技術の進歩により、これまで不可能だったいろんなことができるようになり、新しいツールが開発され、それによりデプロイプロセスがよりアクセスしやすくなった。

前述のコースでは、経験豊富なウェブデベロッパであるAlon Burgに会った。我々はこの目標を追求する為にタッグを組むことにした。
まずは、一緒に下記の目標を設定した:

●自分たちのディープラーニングスキルを向上させること

●自分たちのAI製品のデプロイスキルを向上させること

●市場ニーズのある有用な製品を作ること

●(自分たちの為、そして、我々のユーザの為に)自分たちが楽しむこと

●我々の得られた経験をシェアすること


これらを考慮して下記のアイデアを検討した:



●まだ実現されていない(あるいは、未だに適切に実現されていない)、

●計画と実行がそれほど困難ではない(我々の計画では、週1稼働で、2ー3ヶ月)、

●簡単で魅力的なユーザインタフェースで(demo用途だけでなく、みんなが使ってくれるプロダクトにしたかったのだ)、

●トレーニングデータがすでに用意されていて(マシンラーニングに明るい人であればご存知のように、データがアルゴリズムよりもコスト高になることがある)、

●最先端のディープラーニング技術を用いていて(Googleや、Amazon、クラウド上の友人たちによりコモディティ化されてない)、でも最先端すぎない(オンライン上でいくつかのサンプルを見つけることができるレベル)、

●出荷可能レベルの結果を達成するポテンシャルをもつもの


この分野は、我々の心に非常に親密なので、最初は医療プロジェクトを引き受けようと考えていた。そして、医療分野には、ディープラーニングに膨大なオポチュニティが転がっていると感じた(今も感じている)。しかしながら、データをかき集めること、合法性、規制の面で問題に直面することに気づいた。
我々の次の選択は、「背景を除去する製品」だった。

「背景除去」は手動でやれば、あるいは、何らかの「マーカー」やエッジ抽出機能を使えば(フォトショップやパワポにもそのようなツールがある)とても簡単ばタスクだ。
例えば、こちらの例を参照してほしい。但し、完全に自動化された背景除去はとても難しい課題であり、我々が知る限り、満足の行く結果が得られる製品はまだなく、チャンレンジしている人もいる。

どのような背景を除去するか? これは。とても重要な問題であることがわかった。
というのは、モデルがオブジェクトやアングルに関してより具体的であればあるほど、分離の質がより高くなるからである。
取り組みを開始するにあたり、我々は大きく考えた:汎用的な背景除去とは、どんな種類の画像であれ、自動的に前景と背景を識別するものだ。しかし、最初のモデルを学習させたあと、我々は特定の画像群にフォーカスする方が良い、と理解した。そのため、自撮り画像や人物画像にフォーカスすることにした。

https://miro.medium.com/max/1245/1*QPmjt_wQiEBEheUler07zw.png
人物画像の背景除去


自撮り画像とは、

自撮りとは、目立つ前景(一人、あるいは複数の「人物」)にフォーカスされていて、物体(顔+上半身)と背景を、一定の角度で常に同じオブジェクト(人)を適切に分離できるものである。

これらの前提を念頭に置いて、ワンクリックで使いやすい背景除去サービスを作成するために、調査、実装、および何時間ものトレーニングを行いました。

作業の主な部分はモデルのトレーニングでしたが、適切な展開の重要性を過小評価することはできませんでした。適切なセグメンテーションモデルはまだ分類モデル(SqueezeNetなど)ほどコンパクトではないため、サーバーとブラウザーの両方の展開オプションを積極的に検討しました。

製品の展開プロセスに関する詳細をお読みになりたい場合は、サーバー側とクライアント側のポストをご覧ください。
モデルとそのトレーニングプロセスについて読みたい場合は、引き続き、下記をご覧ください。

セマンティックセグメンテーション

私たちに似たディープラーニングとコンピュータービジョンタスクを調べると、セマンティックセグメンテーションタスクが最適なオプションであることがわかります。

他にも深度検出により分離する戦略も存在しますが、我々の目的には、まだ十分に熟していないようである。

セマンティックセグメンテーションは、よく知られたコンピュータビジョンの課題であり、分類およびオブジェクト検出と共に、上位3つのうちの1つである。セグメンテーションは、全てのピクセルをクラスに分類するという点で、実際には分類タスクであ流。画像の分類は検出とは異なり、セグメンテーションモデルは画像の「理解」を実際に示す。
「画像のなかに猫がいる」と言うだけでなく、どこの何が猫かをピクセルレベルで指し示す。

では、セグメンテーションはどのように動くのだろうか。より理解を深める為に、この分野の初期に行われた研究をいくつか検討する必要がある。

もっとも初期のアイデアは、VGGやAlexnetのような初期の分類ネットワークを採用することだった。VGGは、2014年の画像分類に置ける最先端モデルだったが、シンプルでわかりやすいアーキテクチャだった為に、今日ではとても有用である。VGG初期レイヤを調べると、分類すべきアイテムの周りが非常に活性化されていることがわかる。

(訳注:VGG:2014年、画像認識のコンペティションのクラス分類の部門で特に高評価を得たネットワークであり、畳み込み層と全結合層を連結し、シンプルに層を増やしたヘットワーク構造をもつ)
(訳注:alexnet: ImageNetデーターベースの100万枚を超えるイメージで学習済みの畳み込みニューラルネットワーク)

より深い層はさらに強く活性しているが、反復的なプーリングアクションの為に、その性質は粗くなる。これらの理解を念頭に置くと、分類トレーニングもオブジェクトの検索/セグメント化に幾らかの調整を行えば利用可能である、と仮定された。

セマンティックセグメンテーションの初期の結果は、分類アルゴリズムと共に明らかになった。本稿では、VGGを使った場合のいくつかのラフなセグメンテーション結果をお見せする。

https://miro.medium.com/max/512/0*muU9JtcPG8ahHY3a.

遅延レイヤー結果:


https://miro.medium.com/max/1227/0*_TMVftWCnWDmPXlS.


バス画像のセグメンテーション、薄紫色(29)は、双線型アップサンプリング後のスクールバスクラスである。


https://miro.medium.com/max/1172/1*ZBBaIisvp4nG1JAtJ4eIkA.png


これらの結果は、単に、完全に接続されたレイヤーを元の形状に変換(あるいはそのままに)し、その空間的特徴を維持し、完全な畳み込みネットワークを生成することから得られる。上記の例では、7681024の画像をVGGにフィードし、24321000のレイヤーを生成する。2432は画像のプールされたバージョンで、1000はimage-netのクラスカウントである。これから上述のセグメンテーションを導き出すことができる。

予測をスムーズにするために、研究者たちは、ナイーブバイリニアアップサンプリングレイヤーを使った。

FCNの論文では、研究者たちは、上述のアイデアを改善した。アップサンプリングレートに応じて、FCN-32,FCN-16、FCN-8と命名された、より豊かな解釈を可能にするために、いくつかのレイヤー間を接続した:

https://miro.medium.com/max/1316/0*AyBHxDfXDVVkbena.




レイヤ間にいくつかのスキップ接続を追加すると、元画像からより詳細な情報をエンコードすることが可能である、と予測できた。さらに訓練を行うことにより結果を改善することができた。
この方法は、それまで考えられていたほど悪くないことを示し、ディープラーニングによるセマンティックセグメンテーションに可能性があることを証明した。

https://miro.medium.com/max/1055/0*CGgz2q_jGpBnbcig.



論文から、FCNの結果 、FCNはセグメンテーションの概念をアンロックし、研究者はこのタスクのために、異なるアーキテクチャにトライした。新しいモデルでも、既知のアーキテクチャを使い、アップサンプリングし、スキップコネクションを使うというメインのアイデアは、同じママであり、際立っている。
この分野の進捗については、これや、これ、ここで素晴らしい投稿を読むことができる。また、ほとんどのアーキテクチャでは、エンコーダ/デコーダアーキテクチャのままであることがわかる。

我々のプロジェクトの話に戻す

いくつかの調査を行ったあと、我々はFCN,Unet、そしてTiramisuという利用可能なー非常に深いエンコーダーデコーダーアーキテクチャの3つのモデルを用意した。また、マスクRCNNについても検証を行ったが、これを実装することは、我々のプロジェクトの範疇外に思われた。

FCNはその結果が(たとえそれが出発点だとしても)我々が望んでいたほど良くはなかったので、妥当には思えなかったが、我々が列挙した他の2つのモデルは悪くない結果が得られた。CamVidデータセットでのtiramisu、Unetの主要な利点は、そのコンパクトさとスピードだった。実装面については、Unetの実装はとても簡単(kerasを使った)、Tiramisuも、実装可能だった。実装を開始するために、我々は、Jermy Howardの優れたディープラーニングコースの最後のレッスンでのTiramisuの優れた実装を使った。

これら2つのモデルを使って、我々はいくつかのデータセットを用いた学習を開始した。Tiramisuを最初に試したら、画像にあるシャープなエッジをキャプチャする機能があるため、その結果がとても大きな可能性があることがわかった。一方、unetは精度が十分でなく、少し残念な結果に思えた。

https://miro.medium.com/max/1496/1*cyPpwf_y-81QgUEntLbLLg.png



データ

モデルに一般的な方向性を設定した後、適切なデータセットを探し始めた。セグメンテーションデータは分類や検出ほど一般的ではない。加えて、手動のタグ付けは事実上不可能である。セグメンテーションのためのもっとも一般的なデータセットはCOCOデータセットで、これには、90のカテゴリに分けられた約8万件の画像、20にクラス分けされた1.1万の画像があるVOCパスカルデータセット、そしてそれより新しいADE20Kのデータセットが含まれている。

我々は、COCOデータセットを使うことを選んだ。これは、我々が関心をもつ「人」のクラスの画像がより多く含まれていたからである。

自分たちのタスクを考慮し、我々は非常に関連性の高いこの画像のみを使うか、より一般的なデータセットを使うか検討した。1つには、より一般的なデータセットの方がより多くの画像やクラスがあるので、モデルは、より多くのシナリオや課題を扱うことができる。一方、一晩学習させると15万を超える画像を読み込むことができた。このモデルをCOCOデータセット全体に導入すれば、各画像がそれぞれ(平均して)二回読み込まれ、よって、少々のトリミングには有効である。さらに、目的に合わせてよりフォーカスしたモデルが得られる。

触れておくべきことをもう一つ。TiramisuモデルはもともとCamVidデータセットで学習されたものだが、これにはいくつかの欠陥があるが、もっとも重要なことは、画像が非常に単調である、ということだ。全ての画像は、車窓からの沿道写真だ。簡単にわかるように、(たとえ、人が含まれていても)このようなデータセットから学習することは、我々のタスクにはなんのメリットもないので、少し試しただけで先に進んだ。

https://miro.medium.com/max/1121/1*OwksnSnYpEukpOx5stja3w.png
CamVid データセットからの画像



COCOデータセットには非常に簡単なAPIが同梱されており、各画像にどんなオブジェクトが存在するかを正確に知ることができる(90の定義済みクラスによる)。

いくつかの実験を行った後、データセットを希釈することにした。まず、人物が写っている画像のみをフィルタリングし、4万件の画像を抽出した。次に、人物が何人も写っている画像を全て捨て、一人か二人しか写ってない画像を残した。これは、我々のプロダクトが見つけられるはずだからである。最後に、画像の20%ー70%が人としてタグづけされている画像のみを残し、人物が背景の中にとても小さく写っているものや、何か奇妙な怪物(残念ながら全てではない)のものを除外した。我々の最終的なデータセットは1.1万件の画像からなり、この段階では、十分だと考えた。

https://miro.medium.com/max/1595/1*QJiLnyjNtyS9ujrMFCnUGA.png
左:良い画像、 中:文字が多すぎ、 右:目的が小さすぎ



Tiramisu モデル

前述したように、Jeremy HowardのコースでTiramisuモデルを紹介された。「100層のティラミス」というフルネームは、巨大なモデルという意味を表すが、実際には、非常に経済的で、パラメータは9Mしかない。これと比較して、VGG16には、130M以上のパラメータがある。

このティラミスモデルは、最近の画像分類モデルであるDensNetがベースとなっており、全てのレイヤーが相互接続されている。
さらに、ティラミスはUnetにようにアップサンプリング層にスキップ接続を追加する。

もし、覚えて入れば、このアーキテクチャはFCNで提示されたアイデアと一致している。つまり、詳細化するために、分類アーキテクチャを用い、アップサンプリング、スキップ接続を追加する。

https://miro.medium.com/max/521/0*8y3DsK9cGoW9tpne.
一般的なティラミスアーキテクチャ



DenseNetモデルは、Resnetモデルの自然な進化とみなすことができるが、次のレイヤーまで全てのレイヤーを「記憶する」代わりに、DenseNetはモデル全体の全てのレイヤーを記憶する。この接続はハイウェイ接続と呼ばれている。これにより、フィルタ数がインフレし、これは、「グロースレート」として定義されている。ティラミスではグロースレートは16なので、各レイヤのフィルタが1072に達するまで各レイヤに16の新しいフィルタを追加する。ティラミスは100層なので、1600のレイヤを期待するかもだけど、アップサンプリングレイヤーではいくつかのフィルタが除去される。

https://miro.medium.com/max/510/1*-Gd_J_qqorbl1PPyAw9KQQ.png
Densenetモデルのスケッチ ー 初期のフィルタはモデル全体にスタックされる。



学習

我々は自分たちのモデルに元の論文で述べたスケジュール、標準のクロスエトロピー損失、1e-3の学習レートと小さな減衰を伴うRMSPRopオプティマイザ、に沿って学習させた。
1.1万の画像を、学習用70%、検証用20%、テスト用10%に分けた。下記の全ての画像は、テストセットから取得したものである。

学習スケジュールを元の論文に合わせるためぬ、500件の画像にエポックサイズを設定した。これにより、より多くのデータ(記事で用いたCamVid データセットには1000未満の画像しか含まれていない)で学習させることができたので、結果が改善されるたびに、定期的にモデルを保存することができた。

さらに、論文には12のクラスがあったが、2つのクラス(背景と、人物)にしか学習を行わなかった。最初に、cocoのクラスのいくつかに学習を行おうとしたが、これは我々の行う学習にあまり得るものはないことがわかった。

データの問題

いくつかのデータセットがスコアを落とす

動物ー我々のモデルでは時々、動物を分類する。これは低いIOUに繋がる。同じメインクラス、あるいは別のクラスに動物を追加すると、おそらく結果から除外されると思う。

体の一部: 我々はデータセットをプログラム的にフィルタリングしtので、人物クラスが実際に人物であるか、手や足のような体の一部なのかを知らせる方法がなかった。
これらの画像は、我々のスコープ外であるが、あちこちに出現した。

https://miro.medium.com/max/405/1*NfXdLh8c0nEbJcwv9zkh8w.png
動物、体の一部、手持ちの物体


手持ちの物体: データセットにある多くの画像は、スポーツに関連したものだ。どこにでもある、野球のバットや、テニスラケット、スノーボードなど。我々のモデルはどのようにセグメント化するか混乱していた。動物の場合のように、それらをメインクラスの一部として、あるいは個別のクラスとして追加すると、モデルのパフォーマンスが向上すると思われます。

https://miro.medium.com/max/375/1*OwgNMXBGYgmYcgX1gaz-oA.png
物体を含んだ、スポーツ画像



cocoデータセットはピクセルごとに注釈が付与されておらず、ポリゴンが付与されている。これで十分な時もあるが、グランドトゥルースが非常に粗いため、モデルが微妙な学習を行うのを妨げることがある。

https://miro.medium.com/max/929/1*P4wf6d8oi-zcIQJFG9464Q.png
画像と、(非常に)粗いグランドトゥルース

結果

結果は、完璧ではないが、満足いくものであった。我々は、テストセットで84.6のIoUに到達したが、最新技術では、85である。この数字は、扱いにくい。というのも、データセットやクラスによって変動するからだ。家、道路など、セグメント化がとても簡単で、90IoUの結果が得られるクラスがある。他に、木々や人物など、ほとんどのモデルが60IoUそこそこの結果に終わる意欲的なクラスがある。この難しさを判断するために、ネットワークを単一のクラスにフォーカスし、写真のタイプを制限した。

我々はまだ、自分たちの仕事が、自分たちの望んでいる「製品レベルにある」とは感じていないが、約50%の写真で良い結果が得られたので、作業を終了して結果を考察して良い頃合いだと思う。
アプリケーションの能力を感じていただけるサンプルを次に示す。

https://miro.medium.com/max/405/1*NfXdLh8c0nEbJcwv9zkh8w.png

https://miro.medium.com/max/1239/1*FCxtsyd-_amEi13NLZaxTg.png
https://miro.medium.com/max/1293/1*-k6qGz9GfiW08Ipr8r9pnA.png
画像、グランドトルース、そして我々の(テスト用データセットからの)結果



デバッグ、ロギング

ニューラルネットワークに学習させる上で非常に重要なところは、デバッグである。作業を開始する際に、データとネットワークを取得し、学習をスタートさせ、結果を確認することは非常に魅力的だった。しかしながら、全ての動きをトラックし、自分たちのために各ステップごとに結果を試すためのツールを作ることが極めて重要であることがわかった。

一般的な課題と、それについて我々の対処内容は以下の通りである。

初期の課題、ーモデルはまだ学習していない可能性あり。何らかの固有の問題、あるいは、データの一部を正規化し忘れるなど、ある種の前処理エラーのためである可能性あり。
何はともあれ、簡単な結果の可視化がとても役に立つかも知れない。このテーマについての良い投稿がここにある。

ネットワーク自体のデバッグークリティカルな問題がないことを確認したあと、予め定義されたロスとメトリクスで学習を開始する。セグメンテーションでは、メインの測定対象はIoU、オーバーラップ率である。我々のモデルに対し、(クロスエントロピーロスではなく)IoUを主要測定値として使い始めるのに数回のセッションが必要だった。他の有用な実験は、全てのエポックごとにモデルの予測をいくつか示すことだった。機械学習モデルのデバッグに関して、ここにいい投稿がある。IoUはkerasにおいて、標準的なメトリック/ロスではないが、オンラインで簡単に見つけることができるだろう、こことか。他にも、ロスやいくつかの予測をエポック毎にプロットするためにこのgistを使った。

機械学習バージョン管理ーモデルを学習させる際に、多くのパラメータがあり、中には扱うのが難しいものがある。我々は、コンフィグレーションを丁寧に書き出すこと(および、kerasコールバックを使って最適なモデルを自動保存すること。下記参照のこと。)を除いて、まだ完璧な方法を見つけられていないと言わざるを得ない。

デバッグツールー上記の全てを実行したあと、全てのステップで作業を調べることが可能であるが、シームレスではない。したがって、もっとも重要なステップは、上記のステップを組み合わせ、ジュピターノートブックを作成し、シームレスに全てのモデルと全ての画像をロードし、すぐに結果を調べられるようにすることである。この方法により、簡単にモデル間の差異や、落とし穴、その他の課題をを見ることができる。

https://miro.medium.com/max/692/1*V_LDY3_yXxXL-WRv5h9JiA.png



下記は、パラメータ調整や追加の学習を行い、モデルを改良した例である。

callbacks = [keras.callbacks.ModelCheckpoint(hist_model, verbose=1,save_best_only =True, monitor= ’val_IOU_calc_loss’), plot_losses]

起こりうるコードエラーの通常のデバッグに加えて、我々は、モデルエラーは、汎用ボディカウンタのカウント外、大きいセグメントの「バイト」、不必要なボディーパーツの延長、照明不足、画質不足、様々な詳細のように、「予測可能である」ことがわかった。
これら警告の中には、特定の画像を異なるデータセットから追加する際に処理したものもあったが、まだ対処すべき課題は残っている。次のバージョンで結果を改善するためには、
出力モデルの特に「ハード」画像に拡張を用いる。

この問題については、データセット問題と合わせてすでに述べた。ここでは、モデルの問題についていくつか見ていくことにしよう。
衣服: 非常に暗い、あるいは非常に明るい衣服は、背景として解釈されることがある。
噛みつき: 他の場合は、良い結果が得られたが、噛みつきがあるものがあった。

https://miro.medium.com/max/1290/1*2UtlGC0NEcC0FRDpkIOEww.png
衣服と噛みつき(侵食?)



3。照明: 照明不足や不明瞭さは、画像では一般的だが、COCOデータセットではそうではない。したがって、これらの問題を扱うモデルの標準的な難易度から、我々のモデルは、より難しい画像を用意することはしていない。k路絵により、より多くの画像を追加して、データを拡張することで改善が可能となる。その反面、夜には、我々のアプリを試さない方がいいと思う。

https://miro.medium.com/max/1161/1*w-zn5F-ZK6CRfuW9vfN-gQ.png
照明不足の例

Further progress options

Further training

我々の製品レベルの成果は、トレーニングデータに対する300エポック以上の学習によるものである。これだけの期間のあとは、モデルは過剰適合しだした。この結果は、
リリース間近のため、データを拡張する基本的なプラグティスを適用する機会を得ることはできなかった。画像のサイズを224×224に変更した後で、モデルを学習させた。
より多くのデータとより大きな画像(COCO画像の元のサイズは、およそ600×1000)を使って、さらなる学習を行えば、結果は改善すると期待できる。

CRFと他の機能拡張

いくつかの段階で、我々は我々の結果がエッジにおいて少しノイジーであることがわかった。これを改善したモデルがCRFである。このブログ投稿では、この著者は、CRFを使ったややナイーブな例を示している。

しかしながら、これは、おそらく結果が粗い場合に汎用的に役に立つものであるため、我々の作業にはあまり役に立たなかった。

マッティング

我々の現在の結果でも、セグメンテーションはまだ完璧ではない。髪の毛や繊細な衣服、木の枝、他の細かい物体を完全にはセグメントできない。
たとえ、グランドトゥルースセグメンテーションがこれらの機微を含んでいないとはいえ。このデリケートなセグメンテーションのような分離タスクは「マッティング」と呼ばれ、
別の課題を定義する。これは、今年初めにNVIDIAカンファレンスにて発表された最新のマッティングの例である。

https://miro.medium.com/max/938/1*9AVzzGTj6F2k5vRuuGSGEw.png
マッティングの例: 入力にはトライマップも含まれる



マッティングタスクは他の画像関連タスクとは異なる。と言うのも、入力には、画像だけでなく、トライマップー画像のエッジのアウトラインも含まれるからである。
これは、「semi-supervided」問題を引き起こす。

我々は、自分たちのセグメンテーション結果をトライマップとして使って、マッティングを少しばかり試してみたが、十分な成果を得られることができなかった。

もう一つの問題は、学習に用いるための適切なデータセットが足りなかったことである。

サマリ

冒頭で述べたように、我々のゴールは、十分なディープラーニング製品を構築することであった。Alonの投稿に見られるように、デプロイはこれまでより、より簡単により迅速にできるようになっている。一方、モデルを学習させるには注意を要する。学習、特に夜間に実施する場合には、慎重な計画、デバッグ、結果の記録を必要とする。

また、研究と新しいことにチャレンジすること、ありふれた学習と改善とのバランスを取ることは、簡単ではない。ディープラーニングを使っているので、
最適なモデル、あるいは必要とする正確なモデルがすぐそこに存在し、他のグーグル検索や、文献によりすぐに見つかる、という感覚が常にあ流。しかし、実際には、
我々の実際の改善は、元のモデルを単純に「絞り」込めば込むほどにもたらされた。そして、上述したように、絞りこむべきものが、まだまだ多数存在すると感じている。

結論として、我々は、この作業をするのがとても楽しかった。これは、数ヶ月前には、SFのように思えた。議論や質問にはよろこんでお返事する次第であり、我々のウェブサイトでお会いできるのを楽しみにしている。本稿を楽しんでもらえただろうか。もっと深掘りしたい場合は、www.shibumi-ai.com をご覧いただきたい。

  ========================

この論文の元の論文: https://towardsdatascience.com/background-removal-with-deep-learning-c4f2104b3157

社内ブログカテゴリの最新記事