Work

【疑問】エンジニアに数学は必要なのか?【結論 : 基本的に不要】

エンジニア 数学
数学を勉強するか迷っているエンジニア
数学を勉強するか迷っているエンジニア
エンジニアに数学は必要なのかな…。

仮に必要なら、おすすめの書籍とか紹介してあると嬉しいな…。

この記事では、上記のような悩みを解決していきます。

 

この記事の想定読者

  • エンジニアに数学が必要なのか気になる人
  • 機械学習やデータサイエンスをやりたいと考えているエンジニア
  • 数学が必要なら、おすすめの書籍を知りたい人

想定している読者は、上記のとおりです。

 

この記事では、「エンジニアに数学が必要なのか」について書いていきます。

 

エンジニアに数学が必要なのか、気になりますよね。

 

結論は「エンジニアに数学は不要」で、この記事を読み終えれば数学がいらない理由が分かるようになります。

 

僕のステータス

  • 大学は数学科出身
  • 大手企業で機械学習エンジニアとして就業

こんな感じの人間なので、おそらく参考になる部分が多いのかなと感じています。

 

【疑問】エンジニアに数学は必要なのか?【結論 : 基本的に不要】

エンジニア 数学 必要

エンジニアに数学は、基本的に不要です。数学がなくても、十分にエンジニアとして活躍していけます。

 

数学が不要な理由1 : エンジニアに必要なのは「論理的思考」

 

エンジニアが必要なのは、数学ではなく「論理的思考力」です。

実装したい機能があって、それをプログラミングで実現する力が必要になります。

 

数学を勉強すると良いと言われる理由は、おそらく「論理的思考力」が身につきやすいからですね。

 

数学の証明問題とプログラミングには、下記のように少し似ている点があります。

  • 数学の証明問題 : 「証明」するためのアプローチを考える
  • プログラミング : 「実装」するためのアプローチを考える

こんな感じで、何か目的を持ちつつ課題解決していく過程が似ているため、論理的思考力が身につきやすいと言われています。

 

ただ、数学をやると論理的思考力が「身につきやすいだけ」であって、必ずしも数学に固執する必要はないですね。

なので、僕はエンジニアに数学は必要ないと考えています。

 

数学が不要な理由2 : 数学よりプログラミング周辺の知識が必要

 

数学よりも勉強するべきは、プログラミング周辺の知識です。

 

プログラミング周辺の知識

  • 各種プログラミング言語のフレームワーク
  • バージョン管理システムの使い方
  • インフラの知識

上記の感じで、プログラミング周辺の知識を蓄えた方が、よっぽど実務の役に立つはずです。

 

そして、プログラミング周辺の知識は、毎日のように進化し続けていますよね。

エンジニアとしてキャリアを積んでいくのであれば、間違えなくプログラミング周辺の知識は必要です。

 

特別な理由がない限り、数学を勉強する必要はないですよ!

 

数学が不要な理由3 : 文系でもエンジニアになれる!

 

ここまで紹介した2つの理由と合わせて、実際のエンジニアには文系出身の方が割といます。

つまり、数学とは無縁だった方々がエンジニアになっています。

 

海外だと大学で情報を学んだ人がエンジニアになりますが、日本では良くも悪くも、大学で情報を勉強せずともエンジニアになれます。

理系だとしても、化学系だったり物理系だったりと、情報とは無縁な人がエンジニアになっています。

 

上記のように誰でも活躍できるチャンスがあるのがエンジニアなので、基本的に数学は不要だと言えます。

 

数学が必要なエンジニアとは【結論 : 機械学習やデータサイエンス系】

機械学習

基本エンジニアに数学は不要ですが、機械学習やデータサイエンス系のエンジニアになるのであれば、数学が必要になります。

 

機械学習は線形代数と微分ができないと少しシンドイ

 

機械学習エンジニアであれば、線形代数や微分ができないと少しシンドイです。

なぜなら、アルゴリズムの中で線形代数や微分を使うからです。

 

機械学習での数学の用途

  • DNNの仕組み : 微分、線形代数
  • DNNの最適化手法 : 微分、線形代数

ざっくりですが、こんな感じで数学が登場します。

 

ぶっちゃけ、チュートリアルくらいならscikit-learnやKerasでサクッと実装できるのですが、少し複雑な実装をしたいと思ったら、ロジックの理解も必要になります。

そして、ロジックの理解をするために「数学の知識」が必要になってきます。

 

なので、機械学習エンジニアになりたいと考えているなら、数学ができないと少しシンドイですね、、、

 

データサイエンスは統計ができないとシンドイ

 

データサイエンス系のエンジニアであれば、統計ができないとかなりシンドイと思います。

データサイエンスって、ざっくり言うとデータを読んで解析していくことが仕事なので、そもそもデータを読めないと完全にアウトですよね。

 

そしてデータを読むには、統計の知識が必須になってきます。

 

データサイエンス系をやりたいと考えているのであれば、統計を学ぶことが必須になってきます。

※さらに : 統計を理解していく上で、微分積分や線形代数が必要になります。なので、数学全般といっても過言ではありません。

 

【数学初学者向け】エンジニアにおすすめな書籍を紹介

数学 書籍

ここからは、数学を勉強したいエンジニア向けの書籍を紹介していきます。

数学科出身の機械学習エンジニア視点で選んだので、難しすぎず本当に必要な知識を学べる本だけを厳選できています。

 

おすすめの書籍1 : ディープラーニングがわかる数学入門

数学が完全に初学で、少し苦手意識がある方には「ディープラーニングがわかる数学入門」がおすすめです。

 

この本は、「数学の解説が優しい + 図解が多め」でとにかく分かりやすいです。

僕自身、あまり頭の良い方ではないので、図解多めでイメージしつつ機械学習で必要になる数学を習得できたのは本当に助かりました。

 

「入門書にぴったりの一冊」といった感じですね。

 

  • 数学に苦手意識がある
  • 数学を理解できる自信がない

上記のような方は、この書籍をおすすめします。

 

おすすめの書籍2 : ゼロから作るDeep Learning

定番ですがオライリー本で、かなり高い評価をもらっている「ゼロから作るDeep Learning」もおすすめです。

先ほど紹介した「ディープラーニングがわかる数学入門」よりも難易度は高いですが、その分収録されている内容が濃いです。

 

  • 数学自体にそこまで苦手意識はない
  • 「ディープラーニングがわかる数学入門」の次の一手が欲しい

上記のような方には、かなりおすすめできる本になっていますよ。

 

おすすめの書籍3 : 大学4年間の統計学が10時間でざっと学べる

「機械学習とかデータサイエンスをやりたいけど、統計って何から勉強していけば良いんだろう…。」

上記のような悩みを抱えている方には、「大学4年間の統計学が10時間でざっと学べる」をおすすめします。

 

こちらの書籍は、統計とは疎遠だったような方が、統計のイメージを掴むのに最適な一冊になっています。

  • データサイエンスをやってみたい
  • 統計の完全初心者
  • 統計と聞いても何のイメージも湧かない

上記のような方におすすめな一冊になっています。

データサイエンスをやらなくても、統計の基礎を学習できるので、教養としてもおすすめですね。

 

【朗報】数学ができると、希少価値が上がる

 

このまま今と同じエンジニア職を続けていくなら意味ないですが、キャリアアップとか目指しているのであれば数学ができるのって希少価値が高いですよね。

おそらく会社で周りを見渡してみても、数学ができる人っていないんじゃないかなと…。

 

仮に数学ができると、機械学習とかデータサイエンス系の事業を始めるときに、間違えなく声がかかりますよね。

僕自身も、数学ができたから機械学習エンジニアとして就業できたようなもので、数学ができると重宝されます。

 

なので、エンジニアに数学は不要ですが、キャリアアップを目指しているのであれば、希少価値の高い知識になることは間違えないですね。

 

少しでも数学に興味があるなら、学んでおいて損はないですよ。

 

おすすめの記事