本当にMacは機械学習には不向きなのか【2020年版】
深層学習 (ディープラーニング)
ディープラーニングや深層学習という言葉が流行り始めてから,ずいぶん経ちますが未だに熱が冷める気配がありませんね.
ディープラーニングといえば機械学習の一部分集合なわけですが,これを個人でやってみたい,という方も年々増えてきていると思います.
さて,機械学習をするにあたって特別なマシンが必要なのでしょうか?
答えはNoです.
今や俗に言う人工知能というものは,簡単に誰でも機械学習で構築することが可能となりました.
簡単に機械学習ができるようなフレームワーク(ライブラリ)が増えてきたことが,その理由の一つです.
機械学習はWindowsでもMacでも,Ubuntuでも可能です.
しかし,「特別なマシンは必要ない」と言ったものの,実は何をしたいかによって答えは少しだけ答えが変わってきます.
機械学習に必要なマシンとは
機械学習を個人でやるにあたって,環境構築というものが必要になってきます.
それは,Pythonを使えるようにするところから始まります.
もし,ディープラーニングをしたければ,GPUコンピューティングのための環境構築も必要になるかもしれません.
ここでGPUが必要と言いましたが,さらに詳しく言うとNVIDIA製のGPUを用意する必要があります.
NVIDIAの提供するCUDAは機械学習で行われる単純な演算をGPUで並列処理して高速化を図るプラットフォームです.
Macで機械学習を行う欠点
ここでタイトルに関連した話題になりますが,MacではNVIDIA製GPUのドライバサポートが終わっています.
(理由はAppleとNVIDIAが仲良くないからです)
詰まるところ,MacではCUDAが使用できないのです.
これがよく巷で言われている「Macに機械学習は向いていない」と言われる所以です.
さて,本当にMacは機械学習に向いていないのでしょうか?
答えは「用途による」
曖昧な回答ですが,これはあなたが「どのような機械学習を行うか」によります.
簡単に言えば,
- 画像処理を行うのであれば「どちらかというと向いていない」
- 株価予測やを行ったり,小さな実数値データを扱うのであれば「向いていなくもない」
です.(曖昧ですね)
結局は,多層なネットワークを使えば使うほど,GPUの恩恵は大きな物になるので,どんなネットワークを使って機械学習をするかによります.
小さなネットワークであれば,それなりに時間はかかりますがCPUでも十分学習可能です.
(というか小さいネットワークだとGPU < CPUの場合もあります)
モバイル端末に載せることを目的とした,MobileNetとかであれば,個人的には十分許容範囲です.
なので,無理にNVIDIA製のGPUを機械学習のために用意しなくても良い,というのが私の意見です.
その理由は他にもあります.
ブラウザ上で機械学習をするという手
CoLab (Google Colaboratory) という,ブラウザ上でPythonを動作させるためのツールがあります.
さらにCoLabでは無料でGPUが利用可能です.
機械学習では,Tensorflow,Keras,PyTorchが利用できるようです.
なにが言いたいかというと,自分の手元に必ずしもNVIDIA製GPUは必要ないのです.
全てはクラウド上で済む話です,便利ですね.
また,SonyのNeural Network ConsoleもWeb上で構築可能ですが,こちらはよりユーザフレンドリーなインターフェースで,プログラミング未経験でも直感で扱えるのが特徴ですね.
ただ,CPUのみの計算は無料ですが,GPUを使う場合は実行時間に比例して費用がかかります.
結論として
私が,この記事で言いたいのは「Macは機械学習向きではない?」という問いに対しては「Yes」であり「No」であるということです.
せっかく,macOSの使いやすさを気に入っているのであれば,無理にWindowsやUbuntuに鞍替えする必要もありません.
もし,学習に数日間から数週間を費やすような大規模の機械学習であれば話は別ですが...
現に私も,Macが好きで使っていますが,趣味では簡単な機械学習しかやらないのでMacのCPU演算だけでやっています.
(研究では大規模なものを扱うのでUbuntuでCUDAを利用していますが...)
ともかく,どの規模の機械学習をやるかに大きく依存するのです.
おわりに
今回の記事では,Macと機械学習の相性の話でした.
個人的には早くAppleとNVIDIAが仲直りしてくれればハッピーなのですが,まだそんな話は出てきません.
それか,Radeonでの機械学習サポートがもっと盛んにされば良いのですが...
【追記】
意外とこの手の話題は人気なようで,たくさんアクセスをいただいているようです,ありがとうございます.
ただ,曖昧な答えしか提示できず申し訳ありません... 笑
この記事は持論を大きく含んでますので,他の方の書いた記事なんかもたくさん参考にしてみてくださいね!
そして気が向いたら,私の他の記事も読んでみてください!