2022年 プログラミング初心者におすすめのPCと備品

はじめに

プログラミング始めてみたい(始めてる)けど、パソコン用意したいなあと思った時、ググってみるといろいろ情報がありすぎて困ったあなた。

PC・プログラミング歴20年以上私が見るに、アフィリエイト(個人で行う企業広告)に毒された記事群が散見されました。困りますよね。。

これ・・・初心者は判断できないのでは?ということでアフィリエイトなしの記事を書きました。

用意したい金額の前提として、下記のように読者を想定しています。

リーズナブルにプログラミングの初歩を学びたいなら。新品価格であれば3万円程度で十分です。

プログラミング楽しいな!プログラミングをより詳しく学びたいという方は、5万円くらいで十分です。10万円程度のPCも紹介していますが、ガッツリやりたい、趣味になってしまった人向けです。

注意点としては、皆が知っているような日系大手メーカーのPCは残念成分(価格、性能、ソフト他)が多分に含まれています。最近の店頭に出ている商品でも、不要なソフトがてんこ盛りなので買う意味を個人的には感じません。

話は少し変わりますが、PCには備品が必要です。なぜなら、備品によって作業効率が段違いになります。備品はソフトとデバイスを紹介します。

ソフトは、私の専門でデータサイエンス(統計・機械学習)で必要なものをピックアップしました。ふつうにプログラミングをする分には不要です。Excel(エクセルやCSVファイルに対応)、PowerPoint(分析では使わないが報告には必要)があればOKです。

デバイスは、作業や学習効率アップのために必要であれば購入ください。

それでは紹介します。

PC

まとめ
・OS:Windows
・大きさ:14型
・性能:要注意

OS

Windowsが実用上良いです。日本のITの現場において、利用環境がWindows準拠が多いからです。

バージョンとしてはWindows10でOKで、Windows11である必要はないです。

本格的なプログラミングをする場合は、MacやUbuntu等になる可能性もありますが、その際は知識がついているので判断が可能になります。

大きさ

14型かそれ以下がおすすめです。

14型はノートPCとしては個人の感想ですが大きめに感じます。17型は大きすぎる可能性があります。カバンによく入れるなら13型以下にすべきでしょう。

ここは特に、家電量販店で見て触れて決めてほしいところです。

性能

最重要ポイントです。高性能と銘打って売られているPCも実は・・・ということは多くあります。

CPU(処理装置)、メモリ(作業台の大きさ)、HDD(記憶装置)、グラフィックカード(画面描写の速さ)の視点で解説します。

CPU

インテルの第10世代i5で十分です。インテルHPに記載があれば問題ありません。比較サイトもありますので、よさそうなPCまたはCPUがあれば自分で調べてみてください。

メモリ

最低8GBは欲しいです。16GBはそこまで必要に感じません。ただし、4GBだとWindowsの動作だけでカクカクになる場合があります。

HDD(記憶装置)

最低250GB欲しいです。Windowsの場合、OSち基礎ソフトで150GBくらいは使います。

より読み込み・書き込みが高速な種類(SSD)もあり、立ち上げが早いなどのメリットがあります。ただ、プログラミング初心者がそこまでこだわる必要あるか?とは感じますね。筆者はこだわっているのでSSDですが。

グラフィックカード

ノートPCで一般的に採用されているオンボード型で問題ありません。
動画編集、深層学習のモデル作成、ゲームをしないのであればGPUは不要です。

おすすめPC(例)

IdeaPad Slim 350i 14

64,130円

上記に書いてある条件はほぼすべて満たしています。
詳しくは、レノボのHPをご覧ください。

THIRDWAVE DX-T7

96,580円

ちょっとハイエンドよりでプログラミングをガッツリする人向け。これ以上ははっきり言って不要です。よりローエンドのPCもあります。
詳しくは、ドスパラのHPをご覧ください。

より見た目重視なら、下記がおすすめです。ただ、値段が高いですね・・・。
Microsoft Surface
Huawei matebook X Pro

ソフト

基本的にMicrosoft Officeで良いですが、PCによって同梱品が変わります。基準価格を知ってお得に購入したいですね。

Microsoft Office Home

買い切り:38,284円
高い・・・。Word、Excel、PowerPointが含まれています。

Microsoft 365 Personal

サブスク:1,284円/月(12,840円/年)
Word、Excel、PowerPointが含まれています。

高いなあと思う方は、下記ソフトをお勧めします。

KING SOFT WPS Office 2

買い切り:5,690円
Word、Excel、PowerPointの代用アプリ。操作性は少し違いますが、機能は十分です。

Apache Open Office

はっきり言ってお勧めしません。
Officeと(互換性があると言っているが)互換性がなく使いづらい。エクセルやパワポをOffice純正からOpenOfficeに変換すると元に戻せないことも・・・。

デバイス

モニタ

デュアルモニタに利用します。作業効率UPならこれが一番です。作業机における大きさで安いモノで十分OK。

マウス

ノートPCにもあった方が良いです。キーボードのコマンドで高速に操作できる人はごくわずかです。

キーボード

不要です。気に入ったキーボードがついてるノートPCを買うべし。

こだわるならデスクトップPCにした方が安上がりかもしれません。

さいごに

PCのスペックはいろいろあって困りますよね。今回は最低限、プログラミングができる内容で設定しました。

最後は、店頭に行き、フィーリングが合ったものを買うといいと思います。長い時間使うので、「おすすめと言われていたから」では続かない可能性が高いです。ストレスも減りますし。

それでは皆様、良いプログラミングライフを!

【教材紹介】Python ゼロからはじめるプログラミング

概要

「プログラミング、興味はあるけどどう始めたらいいのかわからない。」というあなた!まずは、丁寧な説明と図、問題集までついたこの1冊(無料PDFあり)で入門してみませんか?

内容を確認しましたが、ここまで丁寧にわかりやすく、網羅的に説明した書籍はなかなかないと思います。自社の未経験者の教科書にしてもいいくらいです。

気に入ったら本の購入をお勧めします。

名称


Python ゼロからはじめるプログラミング

著者

三谷純

必要知識

なし

得られるスキル

Pythonの基礎的知識
プログラミングの基礎

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】ディープラーニングを支える技術

近年目覚ましい発展を遂げた機械学習、ディープラーニング。その概要と技術の使い方を体系的に学ぶにはどの本がいいでしょうか?

私はこの本をお勧めします。

なぜなら、ディープラーニングについて、最先端の研究をリードする日本で数少ないユニコーン企業、Preferred NetworksのCOO(2022年2月現在)である岡野原さんが書いており、非常にわかりやすく、網羅的に書かれた本だからです。ある程度実務経験を積んだ私でさえ、学びなおしに最適なほど網羅性があります。

では紹介します。

名称


ディープラーニングを支える技術

著者

岡野原大輔

概要

ディープラーニングを支える周辺技術について、人工知能の歴史を紐解き、基礎~発展まで網羅的に説明します。

もちろん、機械学習の基礎についても触れます。

そこで重要な役割を果たした人や技術について、絵をふんだんに使った本です。数式もたまに出てきます。

これを読むことで、ディープラーニングでどのようなことができそうなのかなど、新規サービスについても考察を深めることができます。

必要知識

高校レベルの数学の知識

得られるスキル

基礎知識, 機械学習, ディープラーニング, 表現学習, 画像認識, 音声認識, 自然言語処理, 正規化層, スキップ接続, 注意機構(Attention)

その他の教材紹介ページはこちら → Skill Stacks

ノートPCとPythonでできる音声合成

「音声合成やってみたいけど難しそうだなあ」

私もそう思っていました。
私が使おうとしたきっかけは、大量の青空文庫の書籍を機械に朗読させたいと思ったからです。

そこで、調べてみるとできるということが分かりました。
WindowsのノートPCでも時間を掛ければできるし、これはスゴイ!

ただ、実際のコードを追ってみると技術(言語特徴量抽出、音響特徴量予測、音声波形形成)の複合体なので実装はツラい。orz
さらに調べてみると、Pythonにttslearnというライブラリがあり、なんと6行程度で実装が可能・・・!
これはスゴイ。

それでは、今回は成果物を交えて音声合成の技術書を紹介します。

成果物

「日本語音声合成のデモです。」という短い文の音声を作成しました。

DNN

計算時間

数秒

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch06_Recipe-DNNTTS.html

感想

聞いたことある感じやな~

WaveNet

計算時間

03:54(PC1+GPU使用あり)
06:04(PC2+GPU使用なし)

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch08_Recipe-WaveNet.html

感想

「です」がちょっと違和感あるなあ。。
計算時間もかかるし、これはDNNの方がいいかな?

Tacotron2

計算時間

03:07(PC1+GPU使用あり)
04:51(PC2+GPU使用なし)

参考コード

https://r9y9.github.io/ttslearn/latest/notebooks/ch10_Recipe-Tacotron.html

感想

えっ・・・?すごくないコレ…?
めっちゃ自然やねんけど。

今回の参照本


Pythonで学ぶ音声合成

ttslearnで利用されているモデルは非商用で使うことが可能です。ライセンスなどの詳細は公式サイトをご覧ください。

今回は3つのモデルのみ紹介しましたが、これが音声合成のすべてではありません。そのため、公式サイトに目を通してから利用されることを推奨します。
※過去からの積み重ねがあるので、そちらを読んでいただきたく。
※本を通読しましたが、数式に圧倒されるかもしれません。

エラー対応

Windows環境ではttslearnをインポートできない可能性があります。
そのため、その回避方法を下記に書いておきます。

openjtalk 0.1.3をダウンロード

pyopenjtalkからダウンロードします。
※バージョンが上がるとディレクトリ構成が違っているため、対応が難しいかもしれません。

config.hの編集

mecab/src/config.hを3点編集します。

/* #undef HAVE_WINDOWS_H */

を

#define HAVE_WINDOWS_H 1
/* #undef VERSION */

を

#define VERSION "1.10"
#define HAVE_DIRENT_H 1

を

// #define HAVE_DIRENT_H 1

pip install openjtalk

openjtalkの(setup.pyがある)メインディレクトリで、下記コマンドを実行します。

pip install -e .

pip install ttslearn

ttslearnがインストールできるはず!

エラー対応参考

https://github.com/r9y9/pyopenjtalk/issues/10
https://twitter.com/yamori81/status/1426918620676853769

機器情報

PC1

GALLERIA ZG Core i9 9900K/RTX2080/メモリ16GB K/08430-10a
ゲーム用タワーPC。一昔前のものだが、まだ現役で使えそう。

PC2

THIRDWAVE DX-T7
ノートPC。意外と計算速度が速かった。

青空文庫に関連するサービスについて

青空文庫関連の競合サービスは意外と少なく、文学作品を読める、人の朗読、Androidでの朗読・・・と色々あるものの、本を読む(聞く)間にある、さまざまな意思決定を円滑にする技術(文、音声、要約、検索、しおり、、etc)がどのサービスも所々抜けていて、中年層~ご老人に向けて刺さるような包括的なサービスになっていないので勿体ないなと。
しかもアクセス解析サイトで見てみると1サイトで月100万PV超えているものが複数。コレはびっくり…(@@;

移動時間でも、仕事前でも、就寝前でも、病院でも読める(聞ける)ようなサービスとなるとデバイスを問わないWebが一番楽ですかね。
ちょっと作ってみよう。

さいごに

今回は音声合成を試してみました。
Tacotron2のなめらかさには驚かれたかと思います。
それではまた~(^^ノ

【教材紹介】施策デザインのための機械学習入門

機械学習のその問題設定、現実に一致していますか?
予測しただけになっていませんか?

本当に解きたい問題はなんでしょうか。問題設定の応用的な方法論を学ぶための一冊を紹介します。

名称


施策デザインのための機械学習入門

著者

齋藤優太、安井翔太

概要

PoCで事業に貢献する良いモデルを作成し、さあ実践投入してみたところ・・・まったく効果がありませんでしたということはよくあります。なぜでしょうか?

それは、問題設定に課題があることがほとんどです。

例えば、ECサイトでクーポンを発券する問題を考えてみましょう。
目的は、売上(または利益)額を向上させることです。
クーポンを発券すべきかどうか、あなたはどのように解きますか?

ここでよくありがちな問題設定は、クーポンを配った人と配っていない人のABテストを行うことです。
果たして本当にそれでいいのでしょうか?

私の着眼点は、各ユーザーに対し、クーポンを配った時の期待値が最大化するところを見つけたいとします。
クーポンを配るべきでない人も配るべき人もいるでしょう。
さて、誰にクーポンを発券すべきでしょうか?それを、どのような式で回答できるでしょうか。

上記のような問題設定に対し、本書は基礎的な思考方法を実例を通して学んでいくことができます。
ECサイトや広告運用の問題が多いものの、一般化して考えることができるよう工夫されています。

必要知識

機械学習の基礎的な知識
機械学習の学習方法に対する基礎的な知識
統計学2級程度の知識
大学数学基礎教養レベルの知識
※数式がガッツリ出てきても諦めない力

得られるスキル

機械学習の問題設定、意思決定モデル、因果効果の推定

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】Interpretable Machine Learning(邦訳:解釈可能な機械学習)

機械学習の解釈可能性については、近年さらに重要視されています。
なぜでしょうか?それは、この書籍に記載されています。

このWebサイト(なんと無料!)では、説明性の性質の違いや、人間が考える良い説明とは何かを説明しています。 テーブルデータに対する網羅的な解釈可能性を学ぶには良い教材でしょう。

名称


Interpretable Machine Learning(邦訳:解釈可能な機械学習)

著者

Christoph Molnar
翻訳:株式会社HACARUS

概要

機械学習は多くの可能性を秘めています。
ただし、なぜそのような予測が出されたのか、理由が分からなければ検査もできず、バグにも対応できません。

例えば、ある画像認識のAIでは、オオカミと予測するには背景が白である(雪!)ことが重要で、競争馬と予測するには背景が緑である(芝生!)必要がありました。
そのように、なぜそのように予測されたのかがわからなければ、危なくて使えません。(上記のモデルは使いたくありませんね。)

本書では、下記のように触れられています。

なぜモデルの解釈可能性がそれほど重要なのか、もう少し考えてみましょう。何らかの予測モデルを構築する場合、そこに発生するトレードオフについて考える必要があります: あなたは顧客を集める可能性や、薬がどれだけ患者に効果的か、といったそのモデルが予測する結果についてのみ知りたいのでしょうか。それともたとえ予測性能が下がったとしても予測がなされた理由が知りたいのでしょうか。確かに、一部の事例では予測がなされた理由は必要なく、テストデータに対する予測性能のみを知ることができれば十分だと思います。しかし、この理由について知ることはその問題やデータに対する理解を深め、モデルが判断を誤る際にもその原因を探ることに役立ちます。

現実にモデルを適用するためには、意思決定者がYesと言える材料が必要ですし、利用者も何となくではOKを出さないでしょう。特に、自動運転や診療行為の自動化のような、命にかかわってくる部分には。
そのため、今回の書籍で学びましょう!

必要知識

機械学習の基礎的な知識
※プログラミング知識は、RやPythonなど1つ程度あれば十分対応可能です。

得られるスキル

テーブルデータの機械学習の解釈可能性の理論
Partial Dependence Plot、Individual Conditional Expectation、Accumulated Local Effects、特徴量の相互作用、Permutation Feature Importance、Global Surrogate、LIME、Anchors、SHAP、ニューラルネットワークの解釈
Counterfactual Explanations、Adversarial Examples、prototypeとcriticism、Influential Instances

こちらは、テーブルデータを重点的に説明した書籍です。いろいろなデータの大局的な説明が必要な場合は、【教材紹介】XAI(説明可能なAI)をご覧ください。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】XAI(説明可能なAI)

今日では、さまざまなデータが収集され、判断の自動化や数値予測の高度化が行われています。

そのAIの判断、どう説明すればいいかわかりますか?
エクセルのようなテーブルデータだけでなく、画像やテキストに対しての判断基準の説明は、意思決定に必須でしょう。
本書はそれらの技術を網羅的に確認します。

名称


XAI(説明可能なAI)

著者

大坪直樹ら

概要

さまざまな機械学習を説明するXAI技術の研究が進んでいます。
私たちは幅広い実務でAIを利用し、成果を上げるために何ができるでしょうか?
そこには、現場の利用者に納得してもらってこそ、常に使われるモノになります。

今回の書籍は、その納得を引き出すための技術の解説書です。
XAIのさきがけとなったLIMEや、画像でのXAIであるGrad-CAM、テーブルデータで必須のSHAPなどが説明されています。
どんなデータが来ても、ある程度対応できるようになるので、ぜひ読んでみてください。

必要知識

機械学習の基礎的な知識
高校数学レベルの数式を読む力

得られるスキル

Python
テーブルデータ・テキストデータ・画像データなどに対するXAI理論
LIME、SHAP、Permutation Importance、Partial Dependence Plot、Tree Surrogate、CAM/Grad-CAM、各種ライブラリの使い方。

こちらは、【教材紹介】機械学習を解釈する技術に比べ、データの種別ごとのXAIなど大局的な説明が多いです。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】機械学習を解釈する技術

多くの企業で導入されるようになってきた機械学習。
その機械の判断基準、本当にわかっていますか?

今回は、実務に利用するために最低限の技術として、変数(特徴量)の重要度や変数と予測値の関係性を求める方法を解説した書籍を紹介します。

名称


機械学習を解釈する技術

著者

森下光之助

概要

地味な表紙をしている本書。
ただ、内容は今後とても重要だと考えられます。
なぜなら、新聞でよく出てくるようなAIの解釈性を担っているのは、ほとんどがこれらの技術だと言って過言ではありません。

特徴量の重要性、変数と予測値の関係性、個別サンプルの予測説明。
そして、それらをまとめて確認できるSHAP(SHapley Additive exPlanations)。
テーブルデータに利用するそれらの方法を、ライブラリと簡単な数式で読み解きます!

必要知識

機械学習の基礎的な知識
高校数学レベルの数式を読む力

得られるスキル

テーブルデータに対するXAI理論
Python、機械学習の解釈性の定義、線形会期モデル、Permutation Feature Importance、Partial Dependence、Individual Conditional Expectation、SHAP(SHapley Additive exPlanations)

こちらは、テーブルデータを重点的に説明した書籍です。いろいろなデータの大局的な説明が必要な場合は、【教材紹介】XAI(説明可能なAI)をご覧ください。
その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】機械学習のための「前処理」入門

予測のためのデータ前処理(加工)にはさまざまな手法があります。本書では、非構造化データを中心に「予測するために」データ分析を進めていきます。前処理と銘打たれていますが、どちらかというとデータ加工のテクニックを記述した本です。

名称


機械学習のための「前処理」入門

著者

足立悠

概要

構造化データ、非構造化データにはデータの前処理(加工)という難題があります。非常に手間暇がかかり、かつ分析モデルの精度に大きく関わってきます。今回の書籍では、非構造化データを中心にデータ加工から予測モデルの構築まで、分析フレームワークCRISP-DMをベースに話を進めます。

この書籍は前処理というより、加工の本だと思われる。下記の定義の前処理なら、必要知識にある前処理大全がおすすめ。

必要知識

【教材紹介】前処理大全

得られるスキル

Python, 欠損値補完, 不均衡データの均衡化, 正規化, クラスタリング, 次元削減
画像データの加工, 時系列データの加工, 自然言語データの加工

その他の教材紹介ページはこちら → Skill Stacks

【教材紹介】前処理大全

前処理はデータ分析で重要な事項です。なぜなら、有用な特徴情報を上手く抽出できていなければどんなモデルであれ無用の長物です。ただ、前処理は体系だった学問としては存在せず、実務の中で学んでいくことが多いため、気づかずミスを犯していることが多いのです。

名称


前処理大全

データ分析のためのSQL/R/Python実践テクニック

著者

本橋智光

概要

本書は系統立てて前処理を学んでいきます。そこで、SQL/R/PythonのAwesomeなコードとNot Awesomeなコードの実例をもとに、Awesomeとは何かを考えます。

この本が理解でき、実践できるようになれば、データサイエンス初心者とは言えないでしょう。
*ただし、画像や音声、動画などの前処理は行いません。もちろん、発展的な時系列解析などの前処理も扱いません。

必要知識

入門程度のプログラミングの知識(関数等が分かる程度)
入門程度の統計学の知識(統計学3級程度)

得られるスキル

前処理, 抽出, 集約, 結合, 分割, 生成, 展開, Python, R, SQL
数値型の前処理, カテゴリ型の前処理, 日時型の前処理, 文字型の前処理, 位置情報型の前処理

その他の教材紹介ページはこちら → Skill Stacks