こんちは!ちょらすかです!
プログラミングを学んでいる皆さんはプログラマーになるためだったり
何かしら目的があってプログラミングの勉強をしてますよね。
目標に向かって努力していることは素晴らしいですよね。
でも、それだけじゃもったいないんです!
実はプログラミングと一緒に統計学を学ぶことでより効率的にプログラミングを学ぶことができ
しかもプログラマーとしての今後のキャリアを広げられる可能性があるんです!
ただ、プログラミング × 統計学 のことを話しても
- プログラミングと統計学を一緒に学ぶとどうして効率的なの?
- 統計学を学ぶとプログラマーとしてなぜキャリアが広がるの?
という疑問が湧いてくることだと思います。
そこで
学生時代に研究で統計学をゴリゴリ使ってコード書いていた
僕が
- プログラミングと統計学を一緒び学ぶことはなぜ効率的なのか?
- プログラマーとして統計学を学んでおくメリットは?
ということに関して解説していきます。
プログラミング勉強中だけどモチベーションが落ちてきた方も見てもらえると嬉しいです。
研究では画像処理やってたんですが、実は統計的な知識がかなり必要です!
画像の相関やら主成分分析やら色ヒストグラムやら・・・。
よかったらググってみて下さいね!
『統計』を学びながらプログラミング勉強するべき2つの理由
統計を学びながらプログラミングを学べき理由は
- 統計的処理の実装がプログラミング練習に適している
- 機械学習・AI分野に手を出せるようになる
の2つになります。
どういう事かを解説していきます。
統計的処理の実装がプログラミングの練習に適している
実は統計を学ぶとプログラミングの練習問題が自分で作れるようになるんです。
このことを ” 平均値を求めるプログラム ” の作成を例に説明します。
例えば「 (1,2,3,4,5) の平均値を求めるプログラムを作ってください」と言われたとき
の感じで変数を5つ用意してそれぞれに 1~5 を代入し、総和を計算した後に 5 で割って
平均値を求めるように処理を考えると思います。
しかしこれが 1~10 の平均値を求めるならどうでしょうか?
また 1~100 や 1~1000 の平均値を求めるなら?
全ての変数を用意するのは大変なので “配列” を使うことを考えると思います。
また配列の性質上、ループ処理である “for文” や “while文” を利用することで
全ての配列を1つずつ記述せずに計算する処理を作ることができますね。
しかし実際にはデータ数は演算毎に異なっていたりしますので
まずは入力データ数を確定させループ処理で総和を計算してその後に平均値を・・・
といった具合に平均値を演算する処理だけでも “配列” , “for文/while文” を
理解している必要が出てきましたね。
また統計ではよく平方根を求めるので “sqrt関数” を使うためのライブラリのインクルードが
必要になったりします。
こういう風に統計的な処理を作成するには様々な構文やライブラリを利用することになるんです。
これはプログラミングを学ぶ上で非常に重要な要素になります。
統計って普段の生活でも役に立ちますし
数学嫌いでも絶対学んだ方がいいですよ!
機械学習・AI 分野に手を出せるようになる
この数年、機械学習・AIはすごくアツい分野ですよね!
画像認識では人間の識別能力をAI越えたことが話題になったりしていました。
しかし機械学習・AI分野に手を出せるようになるとどんなメリットがあるでしょうか?
キャリアパスが広がる
統計学の知識があるとAIエンジニアになれる可能性があります。
理由はAIの設計や検証には幅広い統計学の知識が必要だからです。
それにAIエンジニアは年収が高く求人ボックスさんの統計によれば平均年収は約600万円になります。
プログラマーの平均年収450万円と比べると高い数値になってますね。
AIエンジニアの年収が高い理由は単純に機械学習・AI分野が盛り上がっているのに
人材の供給が追い付いていないので自然と年収は高くなるんですね。
機械学習のライブラリには手を出している人は多くても
統計的な知識が充分身に着けている人が少ないって
採用担当の方が言ってましたね。
機械学習・AI分野で使う統計学の知識の例
この分野で統計の知識が必須な理由ですが有名なディープラーニングを例にすると
下の図のように入力画像を認識し出力で猫か犬に分類するネットワークで説明します。
ディープラーニングで分類をした場合の出力は図のように分類結果の出力が
「猫:13」,「犬:1.29」となっていてなんだかよく分からない数値になってますね。
そこで ” ソフトマックス関数 ” と呼ばれる正規化処理を行なうものを通すと
「猫:0.91」,「犬:0.09」というように合計すると 1 となるように整えられます。
この場合は確信度という解釈になり、猫が91[%] で犬の9[%] より高く
ネットワークは猫と認識したことになります。
こういう部分でも統計的な処理が入っている訳ですね。
この他にも入力データの加工やネットワークの途中演算処理の中でも
統計的処理がぐるぐる動いているんです。
統計学を学ぶのにオススメ本
統計学は難しいイメージがありますし実際ややこしいんですが
なんとマンガで読めて統計学が学べてしまう評価の高い本があるのでご紹介します!
新しいことに挑戦するときは入りやすさが重要です!
まとめ
この記事では
- プログラミングを学ぶなら統計学も一緒に学んだ方がお得な理由
- 統計学の有用性
についてまとめてみました!
このブログの中でディープラーニングに関する記事も書いてます!
株価予測を中心に楽しくやっているので良かったらご覧ください!
コメント