今日やっと以下の記事を Qiita にアップできました。
GAN で物理的に頑丈な形状を生成し、3Dプリンタで印刷 https://t.co/DUNduWe08T #Qiita
— ピジョン@CC-56 (@hyper_pigeon) 2020年5月28日
ついに Qiita に怪文書を書いてしまった…(ブログでやれ)
記事を読んでいない方のために一行で書くと、
古典的な材料力学の理論と 2014年-2017年 のディープラーニングの論文を複数組み合わせ、デザインと強度のバランスを自動で組み替えるシステムのロジックを組み上げ、プログラムを組み、実験し、理論の正当性を提示し、3Dプリンタで印刷し、現実世界に応用可能であることを示唆した。
という感じです。(ちょっと大げさかもしれない)
個人的には、出た結果より、生まれた洞察の方が高価値だと思っています。
それは、本文にも書いていますが、
- この方法を使うと、データが少なくて困っているデータに対する自動生成の新たな切り口になる
- この方法を使うと GAN そのものの性能を上げられる可能性がある
という予測です。 無論、こういった洞察は 90%-99% 間違っているものなので、実際に確かめてみるまで情報量は無いようなものです。 むしろミスリーディングとして悪影響になる可能性すらあり得るので、責任を持って発言しないといけないと思っています。
一気通貫
上記の記事を作るにあたって、主に以下の技術を使用しました。
- TensorFlow (Python)
- GAN (ディープラーニング)
- 画像処理
- 材料力学
- Blender (Python)
- 3D プリンタ
どれか一つの能力が欠けたら、この記事は作れなかったと思います。
主に時間がかかった作業と作業時間は、TensorFlow に 90時間程度、Blender に 30時間程度、材料力学に 10時間程度です。あと、Qiita の記事を書くのに 20時間 くらい使いました。 3Dプリンタは奇跡的に一度も印刷失敗しなかったです。 TensorFlow がこんなに時間を食っているのは、10時間に一度、3-5時間くらい溶けるバグを踏むからです。
なんでこんなものを作ってしまったかと言うと、根源の思想は、
「データと現実を結びつけつつ、その間に理論的変換を挟む」
というものです。 データというのは、今回使った MNIST は簡単な画像ですが、例えばイラストもデータです。 文章でも音でも何でもデジタルで記録されていればデータです。(他にもいっぱいある)
データと現実を結びつけるのは、Blender と 3Dプリンタの組み合わせで実現。 今回の、理論的変換は GAN (ディープラーニング) + 材料力学 という感じになります。
とにかく、データと現実の距離がこれでぐっと縮まり、できることがめちゃくちゃ増えました。(たぶん 1,000倍くらい増えた。)
やった後だとそこまで難しいものじゃなかったんじゃないかと思ってしまいますが、やる前はやりきる自信も全てがうまくいく保証もなかったので、とにかく一気通貫して道筋を作れたことに安心しています。(別の人もこの軌跡を辿りやすくなった)
あと、3Dプリンタは高価ですが、それ以外は全部無料でできるのが現代のいいところですね。
明日はピザに関する記事を書きます。
今まで支援していただいた方
3D プリンタを支援して頂いたしちやさんには、改めてこの場で御礼を言わせて頂きます。 本当にありがとうございます!
- うぇるち さん (HP, note)
- threecourse さん (blog)
- H. NOMATA さん
- 俵 さん
- あるふぁ さん
- ざぶろう さん
- じんべえざめ さん
- watarumon さん (blog)
- カレーちゃん さん (blog, note, Youtube)
- himako さん (HP)
- あららぼ さん (blog(game), blog(tech))
- すみやき さん (blog)
- しちや さん
名前あまり公開されたくない…などの要望があれば Twitter 等から連絡を頂ければ対応します! 並びは支援して頂いた順番です。
↑ 今回の記事の GitHub リポジトリ。結果も重みパラメータもそんなに多くないので全載せしています。