機械学習始めました
こんにちは。
今回は、今後の方針に追加予定の機械学習に関して書こうと思います。
現在は機械学習とかディープラーニングとか、AIとかなんやらってのがトレンドになっていますよね。
特に、マルウェア解析とかインシデントレスポンス関連の製品(EDR:Endpoint Detection And Response)でも、「機械学習を利用した~」なんて言葉を使った宣伝が非常に多いです(本当に機械学習が使われているかは別としてw)
というわけで、私もそこらへん気になってきたので勉強会なり自分で勉強しています。
勉強会については以下のものに参加しました。
「第24回北海道情報セキュリティ勉強会」
北海道でおそらく一番活発に活動していらっしゃるセキュリティ勉強会です。
講師の方も毎度豪華なのですが、今回はトレンドマイクロの方でした。
話の内容はどちらも面白く、加唐さんのほうでは標的型攻撃について、ウクライナなどで行われたインフラに対するサイバー攻撃などについてとても興味深い話をきけました。
また、マルウェア解析方面では知らない人はいない新井さんの講義では、マルウェアの自動分類にチャレンジするという形で、機械学習を使っていろいろ試してみようということでした。
で、ちょっとこのあたりから機械学習について興味を持ち始めたので、まずは環境を整えるところの説明をば。
環境設定
上の講義でもやったものをそのまま使っております。
アプリケーションとしては、「Anaconda Navigator」を使用しています。
https://docs.continuum.io/anaconda/navigator/
これをインストールすると、自動的にpythonもインストールされます。
主に、Pythonを使っていろいろやっていきますので、まとめていろいろ入れてくれるのは結構ありがたいです。
また、実際にソースコードを書いて実行させるときも、Anaconda Navigator内にある「jupyter notebook」を使ってやっていきます。
このjupyter notebookは結構高性能なので、私は頻繁に使っています。
私が参考にしている書籍
で、環境を整えるのと並行して、どんな本をベースとしていくかで結構悩みました。
私のスペックは以下の感じです。
- 文系大学卒で数学にはあまり抵抗はない(趣味でいろいろ数学を勉強中)
- 行列式はほとんど勉強していない。確率は統計学と金融工学である程度勉強
- プログラミング(C, Python, C#)に関してはある程度できる
- 仕事はセキュリティ系
そんな中で私が選択した本がこちら
今のところ方針としては、基礎づくりを第一として
- 機械学習って何?という点をまず理解
- どういったデータが必要なのかなど、考え方をある程度身につける
- 必要となるライブラリとかおおざっぱに把握
という感じです。
いきなり数学がちがちとか、細かいところまでやると途中でとん挫しそうなので、まずはおおざっぱに。
今後少しずつ勉強のまとめとかやっていこうと思います。