俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

俺人トップページ

目次


最近の記事

 


まとめ記事

これまで私の取り組んできた内容のまとめ記事です。

2019年2月〜2020年8月

2020年8月〜9月

2020年10月〜11月

2020年 年間

2021年上半期

2021年下半期


資格関連

G検定、E資格の体験記などです。

G検定

E資格


コンペ関連

各種コンペサイトでの振り返りや、記事のまとめです。

ProbSpace

Signate

Nishika

Solafune

Kaggle


講座・書籍関連

受講した講座や取り組んだ書籍の記録です。

米国AI開発者がゼロから教えるDocker講座(U-demy)

 

GCI 2019 Winter(東京大学グローバル消費インテリジェンス寄付講座)

GCI 2019 Winterを無事修了できました!~その1~

GCI 2019 Winterを無事修了できました!~その2~

Pythonによるスクレイピング機械学習テクニック

オライリー・ジャパン社「実践 機械学習システム」


実装紹介など

Pythonでの実装や、環境構築などの記事です。

自然言語処理

SVM

自作パソコン


雑記

その他、イベント参加記録などです。

AI・人工知能EXPO2019

f:id:kanriyou_h004:20211115150125j:plain

以上

 

 

 

2021年下半期の振り返り(機械学習の積み上げ~実社会への適用に向けて~)

2021年下半期は、上半期に引き続き、機械学習の積み上げの成果を試すため、データ分析サイトのコンペティションなどに参加しました。

この半期は、実データを用いて社会課題の解決に向けたビジネス提案を実施したり、宇宙関連の記事のデータ分析に参加させていただくなど、積み上げた機械学習のスキルを実社会にどう役立てていくか考えられた半期でした。

引き続き、「ゆっくりでも止まらなければ結構進む」の精神で頑張って行きたいと思います。

 

【目次】

【コンペ関連】

 1.日本ディープラーニング協会主催CDLEハッカソン2021企業賞受賞

2021年下半期で印象に残った出来事の1つ目は、昨年も参加した日本ディープラーニング協会主催のCDLEハッカソン2021に参加し企業賞(DENSO賞)を頂けたことです。

www.jdla.org

今年は、昨年の精度を競うコンペ形式とは異なり、5名1チームで、「都市課題をデジタル・データを活用して解決するサービス・ソリューションの開発」に取り組む、ビジネス提案型のハッカソンでした。

1カ月半という短い期間の中、このハッカソンで知り合った初対面の4名の皆さんと、与えられた実データと向き合い、モデルの実装に悪戦苦闘しながらも、1つのビジネス提案として形にすることができました。

昨年のCDLEハッカソン2020に引き続き入賞できたこともさることながら、これまで取り組んできた機械学習の技術を、チーム一丸となって、ビジネス提案にまで取りまとめることができたのは、非常に貴重な経験でした。

これからの活動に生かしていきたいと思います。

2.ProbSpaceで総合ランキング1位をキープ

2021年下半期も、ProbSpaceで、なんとか総合ランキング1位(総合ランキング)をキープできました。

特に印象にのこったのは、宗教画コンペです。

今まで、宗教画をじっくり眺めてテーマを考えることなかったのですが、このコンペを通して、私自身の絵画に対する向き合い方が変わったような気がしました。順位は3位と2連続優勝にはわずかに届きませんでしたが、機械学習以外の点についても学ぶことができたのは良い経験でした。

下半期に参加したProbSpaceの各コンペでの記録は以下の通りです。

3.Solafune、Nishikaにも継続して挑戦

下半期もSolafuneNishikaにも継続してチャレンジしました。

Solafuneでは、初の超解像化のモデルということで、かなり苦戦しました。順位は53位と低迷してしまいましたが、なんとか、モデルが構築できるようになった点では成長できたと考えています。

Nishikaでは、銅メダルを1個追加して、現時点で総合ランキング13位になれました。来年はさらに上位を目指します!

f:id:kanriyou_h004:20211231153704p:plain

 【積み上げ関連】

1.AIQuest2020受講(2021年9月〜継続中)

経済産業省が実施しているAI Quest 2021に今年も参加し、現在も継続中です。

 

守秘義務があり、詳細は記載できませんが、要件定義あり、コンペ形式でのAI開発あり、経営層向けのプレゼンありで、実業務に即した、かなり濃厚な講座です。

現時点では、第1タームAI課題優秀賞をいただきました。

第2タームも引き続き頑張ります。

aiquest.meti.go.jp

2.宇宙が分かる情報サイト「宙畑」の記事に参加

宇宙が分かる情報サイト「宙畑」の以下の記事にて、データ分析という形で参加させていただきました。

sorabatake.jp

sorabatake.jp

目的変数が決まっているコンペとは違い、データから意味を見出すことを目的としてデータ分析を実施させていただいたのは初めてだったので、とても刺激的な経験となりました。

実際の現場のデータ分析は、このアプローチが多いと思いますので、引き続き、分析の感覚を磨いていきたいと思います。

おわりに

2021年下期は、機械学習の勉強だけでなく実際にビジネスにどう生かしていくかという視点で色々な経験を得ることができました。

また、TwitterSNSでのオンラインでの交流だけでなく、一緒にビジネス提案を実施させていただいたり、記事に参加させていただいたり、皆さんとコラボして取り組む機会を沢山いただいて、とても有意義な期間を過ごすことができました。

お世話になった皆様、今年も1年、本当にありがとうございました。

来年もよろしくお願いします!

 

【これまでの道のり】

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

f:id:kanriyou_h004:20201209122737p:plain 

 

 

今日から始める!楽しいコンペの歩き方【Advent Calendar 2021 - Qiita】

アドベントカレンダーに初めて参加させていただきました!

qiita.com

「Kaggleに参加してみたいな」と思ってもなかなか踏み出せないといった方に、コンペの楽しさを少しでもご紹介できればと考えています。

では、ご紹介していきたいと思います。

1.はじめに

「はじめに」と言いつつ、結論なのですが、コンペは楽しいです!

仕事や勉強では、なかなか定量的なフィードバックを得られることが少ないのですが、Kaggleなどのコンペでは、結果がスコアや順位となってすぐに見れるので、ゲーム感覚で取り組めます。

また、何回参加しても、参加者たちのDiscussionを見放題でも無料なのが魅力です。Kaggleのnotebookや、Google Colaboratoryを使えばクラウド上のGPU環境も限定的ながら無料で使うことができます。

そして、なんといっても参加者たちとオンラインで交流して、自分の世界が広がります。

この記事を読んで、興味をもっていただけましたら、是非参加してみてください!

f:id:kanriyou_h004:20211203084442p:plain


2.コンペの歩き方(全体像)f:id:kanriyou_h004:20211203084522p:plain

コンペの歩き方として私の経験から、楽しみ方の1例を紹介させていただきます。

全体像としては、何はともあれ、まず「登録する」、次にTutorialなどを「真似る」、そして出来事を「発信する」という3ステップを踏みます。


3.コンペの歩き方(1.登録する)f:id:kanriyou_h004:20211205102056p:plain

1つ目の「登録する」にあたっては、どのサイトに登録すればよいのだろう?と思っていらっしゃる方もいらっしゃると思います。

Kaggleを始め、私が登録しているコンペサイトについて、個人的な所感を記載します。自身の趣向にあったサイトに登録する際に参考にしていただけると幸いです。

サイト名

URL

所感

Kaggle

https://www.kaggle.com/

言わずと知れた世界的コンペサイト。Discussionやコードの公開も活発で、メダル獲得や称号獲得が対外的にもアピールできます。

SIGNATE

https://signate.jp/

コンペ参加人数が5万人を超える、国内主催のコンペサイト。様々な企業がコンペを主催しています。コンペ以外にもlearningコンテンツも充実。

ProbSpace

https://comp.probspace.com/

最近Ridgelinez社とDX人材マッチングサービスでパートナーシップ開始したコンペサイト。自社主催コンペが中心で毎回チュートリアル付で取り組みやすい。

Nishika

https://www.nishika.com/

データサイエンティスト特化型求人も充実のコンペサイト。副業の紹介も実施しているので、副業可能な社会人にはメリットあり。

Solafune

https://solafune.com/

衛星データ解析に特化したコンペサイト。宇宙好きにはたまらないコンペ。直近では、Microsoftとコラボした高解像化コンペを開催中。


4.コンペの歩き方(2.真似る)f:id:kanriyou_h004:20211203084659p:plain

登録してみたら、いろいろと技術的なことを考えるよりも、コンペの楽しさを実感するために、とりあえず、何かのコンペに参加して、他の方のコードを真似て投稿してみます。

Kaggleであれば「Code」、SIGNATEでは「フォーラム」、Probspaceであればコンペの基本情報の「Tutorial」や「トピック」、Nishikaでは「ディスカッション」、Solafuneでは「Discord」にて、Tutorialや他の方の参考コードなどが投稿されますので、まずは、それをコピーして実行結果を投稿してみます。

すると、すぐにスコアと順位が表示されて、「コンペに参加した!」という実感が湧いてきます。

次は、パラメータらしきところの数値を適当に変更してみます。変更してみた実行結果でスコアや順位が変わるようであれば、そこが精度に影響するパラメータになります。

精度に影響するパラメータが見つかったら、あとはこのパラメータが使われているところを探して、そのコードの意味や役割を調べていきます。

これを繰り返していくうちに、だんだんとコードの中身が理解できるようになってきて、ますます楽しくなってきます!


5.コンペの歩き方(3.発信する)

f:id:kanriyou_h004:20211203084733p:plain

真似て投稿してみたら、次は発信です。

コンペが楽しくても、やはり一人で取り組むとなかなか続かないことも多いです。そこで、おすすめなのが、実施していることを、Twitterやブログなどで発信することです。

私は投稿するたびに良かった悪かった、進捗したなどなんでもよいので発信するようにしています。

こうすることで、いろんな皆さんのご意見をいただけたり、普段接点のない皆さんと交流できたり、新鮮な出会いもあり、モチベーションの維持につながっています。

また、自分が読んでいた書籍の著者の方から、「いいね」やコメントなどをいただけると、とてもテンションがあがります。

自ら情報発信をすることは、おすすめです。


6.一歩先の歩き方f:id:kanriyou_h004:20211205104541p:plain

コンペを続けていると、向上心が出てきて、「もっと上位を目指したい!」となってくることがあります。

その場合の1歩先の歩き方をご紹介します。


7.時間の使い方ご紹介

次に、「コンペを続けたいのに時間がない!」「働きながらは無理!」という場合に、私の時間の使い方をご紹介いたしますので、ご参考にしていただければ幸いです。

ポイントは、「無駄な時間をなくす」という点です。「無駄な時間」というのは人それぞれ価値観が違うので、一意に決めることはできませんが、私は「だらだらとエンドレスでネットサーフィンやYoutubeを見てしまう時間」と定義しています。もちろん目的を持ってみるYoutubeやネット検索は含みません。

では、どうやって無駄な時間をなくすかというと、「複数のコンペに同時参加して隙間時間をなくす」という作戦をとっています。複数のコンペに同時参加することで、次々とやらないといけないことが出てくるので、「無駄な時間」を過ごす暇がありません(笑)

また、隙間時間にやることをパッと出せるように、@fkubota_さんのKaggle日記という戦い方を活用しています。


8.最後に

上記のように、楽しみながらコンペに取り組むことで、2019年にはPythonのパの字も知らない状況から、今ではKaggleを始め様々なコンペで結果を残すことができ、ProbSpaceでは総合ランク1位になることができました。

是非皆さんも、コンペに参加して楽しみながらスキルアップしていきましょう!

f:id:kanriyou_h004:20211205112806p:plain

 

oregin-ai.hatenablog.com

 

Pythonによるスクレイピング&機械学習テクニックのまとめ

Pythonによるスクレイピング&機械学習開発テクニック増補改訂 Scrapy、BeautifulSoup、scik [ クジラ飛行机 ]を参考にさせていただきながら、取り組んだ、スクレイピング機械学習の記事まとめです。

事前準備編(環境構築)

スクレイピング

機械学習

以上

f:id:kanriyou_h004:20200523132243p:plain

 

 

【12位解法】Nishika開催「ケーブルコネクタの種類判別」の振り返り。

データ分析コンペティションNishika」で開催された「ケーブルコネクタの種類判別」に参加し、12位で銅メダルの成績を残せました!

今回のコンペも、私の好きな画像分類のタスクだったので、結果も残せてよかったです。

また、USBケーブルなどのコネクタの種類を判別するという超身近な題材だったので、とても楽しく取り組めました。

f:id:kanriyou_h004:20211022202920p:plain

では、振り返って参りたいと思います。

1.全体構成

今回のコンペは、多種多様に細分化されたケーブルコネクタの画像およそ数千枚についてケーブルの種類を正確に分類できる多クラス分類するコンペでした。

データの特徴としては、ケーブルコネクタだけが写っているのではなく、一般のご家庭等で撮影されたと思われる、背景も明るさもサイズもバラバラで統一感のない画像でした。中にはピントすらあっていない画像もあってなかなか苦戦しました。

物体検出モデルで、ケーブルコネクタの位置を検知して分類するモデルにもチャレンジしてみたのですが、なかなか精度が出せず、結局、慣れ親しんだEfficientnetのモデルを採用しました。

f:id:kanriyou_h004:20211023000930p:plain

今回は、あまり手の込んだことはやりませんでしたが、各モデルで交差検証時に出力したfoldごとの出力を、そのモデルだけで平均をとるのではなく、全モデル分の出力の加重幾何平均をとって全体の予測値とする工夫をすることで精度を上げることができました。

2.前処理

前処理については、ほとんど何もせず、計算量を減らすために画像サイズを512×512に変更すうところだけを実施しました。

時間があれば、水増し等についても試せばよかったとも思いましたが、リソースをEfficientnetの学習の方に使うことを優先しました。

【前処理】

こちらは、訓練データ、テストデータの両方に適用する共通の処理です。

  処理内容

サイズ変更

cv2.resize()を使って、画像サイズの変更を実施。

今回は512x512に変更。

3.モデル構築

 全体としては、Efficientnetのb0~b5で学習をして、予測値を加重幾何平均をとることで、ensembleしました。

f:id:kanriyou_h004:20211023000930p:plain

ensembleの方法としては、各モデルのfoldごとに、検証データの予測値の加重幾何平均をとって、精度がよい加重を採用しました。

最終的に6モデル×5foldの学習済みモデルでテストデータの予測を実施して、検証データで精度が良くなった加重を使った加重幾何平均を最終的な提出予測値としました。

f:id:kanriyou_h004:20211023215640p:plain

このモデルで提出したファイルで、最終スコア:0.967383 となり、全体で12位で、銅メダル圏内に入ることができました。

4.感想

今回のコンペは、ケーブルコネクタの種類を判別するとても身近なコンペでした。

衛星データ分析プラットフォームのSolafuneで開催されている 市街地画像の超解像コンペ と並行して取り組んでいたので、俯瞰的な画像と、目の前の生活画像とを行ったり来たりしつつも、コード上では似たような処理もあったりするところが面白かったです。

技術的には、Yoloでの物体検出モデルや、データの水増し等も、いろいろ試してみたかったのですが、リソースの利用時間の制限でなかなか取り組めなかったのは残念でした。早く半導体の価格が下がってGPUマシンを購入したいです。

5.謝辞

最後となってしまいましたが、本コンペを運営してくださいました、Nishika の運営の皆様、データを提供してくださいましたサンワサプライの皆様、一緒にコンペに取り組んでいらっしゃった皆様、Twitter上でやりとりを実施させていただいた皆様に心より感謝申し上げます。

引き続き、このコンペで身に着けた知識や経験を生かして、社会に還元できるよう取り組んでまいりたいと思います。

 

【過去記事】

G検定、E資格の取得から、これまでに取り組んできた道のりは以下にまとめております。何かのご参考にしていただければ幸いです。

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com

Solafune x Microsoft 市街地画像の超解像化コンペに向けて超解像化について学ぶ。#MScup

今回は、衛星データ分析サイトのSolafuneで現在開催されている「市街地画像の超解像化」コンペ(MScup)に向けて参考にしている情報をまとめてみました。

現在参加中の皆様や、これから参加予定の皆様のご参考になれれば幸いです。

【目次】

1.【宙畑】超解像×衛星画像でできること。関連論文の紹介とTellusでやるには

sorabatake.jp

今回のコンペを開始するのにピッタリのサイトだったので、最初に参考にさせていただきました。

このサイトのおかげで、初手で躓かずに提出までこぎつけました。

衛星画像分野で、機械学習が必要になっている背景から始まっているので、Solafuneの今回のコンペの主旨にある、社会実装の加速に貢献するという意味でも、非常に有用なコンテンツです。

また、超解像の理論的な説明から、論文やサンプルコードへのリンクが貼ってあり充実した内容になっています。

著者は、以下の記事の事前準備として、勉強されたとのことです。

sorabatake.jp勉強された内容についても、以下の資料にまとめて公開してくださっています。

docs.google.com

2.【Sansan Builders Blog】超解像の歴史探訪 -SRGAN編

buildersbox.corp-sansan.com

1つ目のサイトで出てきたキーワード「SRGAN」で検索してたどり着いたサイトになります。

GANの説明から始まり、SRGANについて、生成器、識別器、損失関数、学習の部品に分けて実装例つきで説明してくださっています。

また、GitHubにコードも公開してくださっていて、とても参考になりました。

3.【Quiita】トップ学会採択論文にみる、超解像ディープラーニング技術のまとめ

qiita.com2014年〜2018年までのCVPR, ECCV, ICCV などのコンピュータビジョンのトップ画像処理学会に採択された、ディープラーニング(DL)を用いた超解像モデルをまとめてくださっています。

どのモデルが、どのような系統のモデルなのかという樹形図もあるので、各モデルの特徴を把握する目安になります。

主要論文リストや、トレーニング用データセットなども紹介されているので、お役立ち度が高いです。

4.【ULCAMTCVSMPS】超解像ネットワークを微分の差の絶対値で学習してみました。

crater.blog.ss-blog.jpこちらのサイトは、GANを使わない、Super-Resolution Neural Netowrk について、説明してくださっています。

残念ながら学習済みモデルの公開は終わっているようなのですが、モデルのコードはGitHubに公開してくださっています。

6.おわりに

とても興味深いテーマで、様々な分野で応用されている技術なので、まだまだ、始まったばかりのコンペですが、すでに学びが盛りだくさんです。

引き続き、コンペで取り組む中で得た情報を発信していきたいと思います。

 

f:id:kanriyou_h004:20210917182331p:plain

 

 

【3位解法】ProbSpace開催「宗教画テーマの分類」の振り返り。

データ分析好きが集まる交流プラットフォーム「ProbSpace」で開催された「宗教画テーマの分類」に参加し、3位の成績を残せました!

今回のコンペは、私の好きな画像分類のタスクだったので、結果も残せてよかったです。

また、画像分類のタスクでも、プロ野球データ分析チャレンジで使った、多値分類に2値分類を応用する戦法が活用できたのもよい経験でした。

Image

では、振り返って参りたいと思います。

1.全体構成

今回のコンペは、米・メトロポリタン美術館が公開している、キリスト教の宗教画画像を、「受胎告知」、「最後の晩餐」など、13種類のテーマに分類するという画像分類コンペでした。

データの特徴として、訓練データが654枚、テストデータが497枚と、比較的データ量が少ないデータだったので、今回のコンペで許容された学習済みモデルをいかに活用できるかがポイントになりました。

また、今回も前回のプロ野球データ分析チャレンジと同様、分類するクラスごとの数に偏りがあったため、画像分類の処理を行った後、2値分類で精度を上げて上書きする処理を実施しました。

<データの分布>

f:id:kanriyou_h004:20210913203104p:plain

 

f:id:kanriyou_h004:20210913212909p:plain

少ないデータ量を補うために、以下の対策を実施いたしました。

  • 前処理:垂直・水平に反転した画像、回転した画像、セピア色に変換した画像を水増しした訓練データを作成。それぞれの画像の水増し割合を16パターンで学習を実施。
  • モデル1段目:学習済みのEfficientNetを活用してファインチューニングを実施。
  • モデル2段目:全クラスを予測する多値分類のモデルと、クラスごとの2値分類を実施するモデルを作成して、最後に上書きを実施。

また、ProbSpaceのトピックで公開させていただいたデータ内の画像の重複について(簡易自動化バージョン)を使って、重複・類似した画像を調べました。

2.前処理

前処理については、以下の2通りで実施いたしました。

データの前処理については、albumentationsというライブラリを利用しました。

【前処理 共通】

こちらは、訓練データ、テストデータの両方に適用する共通の処理です。

前処理

処理内容

サイズ変更

albumentationsのResize()を使って、画像サイズの変更を実施。後続の学習済みモデルに合わせたサイズに変更。

標準化

albumentationsのNormalize()を使って、画素値の標準化を実施。

【前処理 水増し】

こちらは、訓練データを水増しするために実施する前処理です。テストデータには実施しません。

前処理

処理内容
水平反転

albumentationsのHorizontalFlipを使って、指定した割合の画像を水平反転。

垂直反転

albumentationsのVerticalFlipを使って、指定した割合の画像を垂直反転。

回転 albumentationsのRotateを使って、指定した割合の画像を回転。
セピア変換 albumentationsのToSepiaを使って、指定した割合の画像をセピア色に変換。今回のデータでは、古い絵画もあったので、採用してみました。

 

3.モデル構築

 今回は、大きく分けて、「学習済みのEfficientNetを活用してファインチューニングを実施」する1段目と、プロ野球データ分析チャレンジで使った、「全クラスを予測する多値分類のモデル」の出力に、「クラスごとの2値分類を実施するモデル」の出力を上書きをする2段目を組み合わせた、スタッキングモデルを構築しました。

f:id:kanriyou_h004:20210913212909p:plain

 

【1段目:EfficientNet】

1段目は、EfficientNetの学習済みモデルをファインチューニングして、2段目に渡す訓練データの予測値と、テストデータの予測値を出力するモデルを16個作成しました。

それぞれのモデルで、訓練データの水増しの割合を変更することで、パターン分けしました。

このモデルは、skywalkerさんがトピックに投稿してくださっている、EfficientNetB0使ったベースラインも参考にさせていただきました。

このモデルの学習には、GPUが必要となるので、Google Colabで実行するには、実行時間に制約があるので、とても骨が折れました。

 

【2段目:LighetGBM】

2段目は、16種類の予測値を訓練データとして、「多値分類するモデルの予測値」に、「各分類ごとの2値分類をするモデルの予測値」を上書きすることで、精度を上げる方法を実施しました。

この方法は、プロ野球データ分析チャレンジで採用した方法を応用しました。

今回も、通算500個以上のモデルを作って、いろいろな組み合わせを試し、そのうち200回以上の提出を実施しました。後半はほぼ毎日提出しました。


4.感想

今回のコンペは、宗教画の意味するテーマを分類するコンペでした。

これまで、宗教画をじっくり眺めて、テーマを考えることがなかったので、「あ、この絵のこの部分はこういうことを表しているんだ。」と、モデル以上に自分自身も学習することができました。(笑)

途中、自分が分類する場合に、「十字架があるな」、「人が多いな」などを基準にしたりするので、物体検出が応用できないかと、Yoloにも挑戦してみましたが、なかなか精度は上がりませんでした。

参考:学習済みのYOLOv5による物体検出結果の特徴量への追加

新しい技術にも触れられて、とても有意義なコンペとなりました。

また、今回からProbSpaceでも、最終提出ファイル選択方式となったので、最後の最後まで、ファイル選びに悩みました。

Public:Privateが13%:87%と、Publicスコアがあまり重視できない割合だったこともあって、ShakeDownしてしまいましたが、何とか3位になることができました。

5.謝辞

最後となってしまいましたが、本コンペを運営してくださいました、ProbSpace の運営の皆様、一緒にコンペに取り組んでいらっしゃった皆様、Twitter上でやりとりを実施させていただいた皆様に心より感謝申し上げます。

今回学ばせていただいた事項を糧に、社会貢献できるよう引き続き精進してまいりたいと思います。

 

【過去記事】

G検定、E資格の取得から、これまでに取り組んできた道のりは以下にまとめております。何かのご参考にしていただければ幸いです。

oregin-ai.hatenablog.com

oregin-ai.hatenablog.com