プログラミングを学ぶ人「AIって何?機械学習って何?ディープラーニングって何?」
こんな人に向けた記事です。
みなさんこんにちは。日々機械学習を学ぶ外科医のさとう(Twitterはこちら)です。
AI、機械学習、ディープラーニング。
最近は嫌でも私たちの耳に入ってきます。
混同している方もいますが、これらは全くの別物です。
様々な学会でもAIセッションが開かれ,AIのシンポジウムなんかも最近は良く開かれるようになってきました。数年前には想像もできなかったことです。
機械は私たちから仕事を奪っていく怖いもの,人間の敵のようなもの。
私も最初はこのようなイメージがありました。
しかし、少し勉強してみるだけでそのイメージは覆ります。
AIは私たちの生活を豊かにする無限の可能性を秘めたものでした。
医療業界というのは他の業種との交流が少なく特に他の分野への関心が湧きにくい環境です。
そんな中私が勉強して感銘を受けたこのAI(今回は機械学習)について,どのようなものなのか,そして医療現場で今後どのように使われていくのかについて解説していきます。
AI、機械学習、ディープラーニングの違い
まず第一に,AIは機械がなんでもやってくれる魔法ではありません。
現時点ではトランスフォーマーのように人間と同じく考えて話して行動するようなものではありません。
AI,機械学習,ディープラーニングの関係を図で表すと次のようになります。
AIとはArtificial Intelligence,つまり人工知能を意味します。
AIとは"機械が人間と同じように学習,判断,認識をすることを目指した取り組みや技術”です。
AIの定義ははっきりしているわけではなく,有識者によって表現の仕方や意見がわかれるところです。
とにかく、AIというのは非常に広い概念であるということです。
一方,機械学習はある特定の課題について膨大なデータから学習し法則性を導き出し,その法則を新規のデータに対して活用する手法です。
プログラミングコンペのKaggleから「心不全患者の予後予測」を例に見ていきましょう。
使用しているデータはこちらです。
本データでは心不全患者299名から抽出した特徴,そして予後がDEATH_EVENTとして記されています。
抽出された因子は画面左から年齢,貧血,CK,糖尿病,EF,高血圧,血小板,Cr,Na,性別,喫煙,time(すいませんこれが何を表しているのか正直わかりませんでした・・・)です。
この中でDEATH_EVENTを目的変数としてその他の因子からDEATH_EVENTの有無(つまり死亡するかどうか)を予測するのが機械学習です。
今回私は4つの予測モデルを作成し,因子から最大93.33%の正確性でDEATH_EVENTの有無を予測することができました。
このように特定の課題(心不全患者における死亡の有無)について膨大なデータ(心不全患者299人から抽出した特徴)から法則性を見つけ出し,その法則を新規のデータ(心不全患者は上記因子を抽出すればDEATH_EVENTを理論上93.33%で予測できる)に当てはめる。
これが機械学習です。
機械学習はこのように人間が特徴となり得る因子(特徴量)を抽出しそのデータを元に法則性を導き出す手法です。
それでは,ディープラーニングはどういったものなんでしょうか。
ディープラーニングではこの特徴量選択をコンピューターが判断します。
ディープラーニングは画像認識,音声認識などで主に用いられています。
病理画像診断を例に考えてみましょう。
医師がこれを癌であると判断するには,核の腫大や偏在,細胞密度などから判断します。
また扁平上皮癌と判断するにはいわゆる癌真珠や細胞間橋形成などを参考にします。
ディープラーニングでは膨大な扁平上皮癌の画像を学習させることでこれらの特徴を人間が入力せずとも学習してくれるんです。
また重要なのは私たち人間が今まで注目していなかった新しい特徴にも着目してくれるんです。
このようにディープラーニングでは特徴量の選択まで機械が担います。
医療分野では病理画像診断や放射線画像診断で主に用いられています。
これが画像診断は将来機械が担うもしくは補助するのではないかと言われている所以です。
さいごに
今回はAI、機械学習、そしてディープラーニングについて勉強しました。ざっと復習していきましょう。
ポイント
- AI:機械が人間と同じように学習,判断,認識をすることを目指した取り組みや技術
- 機械学習:ある特定の課題について膨大なデータから学習し法則性を導き出し,その法則を新規のデータに対して活用する手法
- ディープラーニング:膨大なデータを学習し特徴自体を自ら見つけ出し学習する手法
機械学習はプログラミング言語のPythonを用いれば、今持っている自分のパソコンですぐに実践することができます。
英語論文になっている手法もしっかりと勉強すれば、自分のパソコンで出来ます。
このサイトでは、プログラミングに興味のある医学生、医師のための情報を発信しております。
プログラミングの学習方法には大きく分けて、「独学」と「プログラミングスクール」の2つがあります。
当サイトでは一貫してプログラミングスクールを利用することをおすすめしています。
なぜなら、独学で勉強した私が非常に苦労したからです。
また私はプログラミングを学習するにあたり、師匠・メンターのような存在がいました。
わからないところは教えてもらっていました。
そのような環境でなければ0から独学で勉強するのはとても効率が悪いと思います。
詳しくは、プログラミングの独学は難しいです【私の失敗談】で紹介しています。
この記事が一人でも多くのプログラミングに興味のある方のお役に立てば幸いです。