サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
tutorials.chainer.org
NumPy 入門¶ 本章では、Python で数値計算を高速に行うためのライブラリ(注釈1)である NumPy の使い方を学びます。 本章の目標は、単回帰分析と重回帰分析の章で学んだ重回帰分析を行うアルゴリズムをNumPy を用いて実装することです。 NumPy による多次元配列(multidimensional array)の扱い方を知ることは、他の様々なライブラリを利用する際に役立ちます。 例えば、様々な機械学習手法を統一的なインターフェースで利用できる scikit-learn や、ニューラルネットワークの記述・学習を行うためのフレームワークである Chainer は、NumPy に慣れておくことでとても使いやすくなります。 それでは、まず NumPy の基礎的な使用方法を説明します。 NumPy を使う準備¶ NumPy は Google Colaboratory(以下 Colab
CuPy 入門¶ CuPy は NumPy と高い互換性を持つ数値計算ライブラリです。 NumPy で提供されている多くの関数を NVIDIA GPU (Graphics Processing Unit) で実行することで簡単に高速化できるように設計されています。 GPU とは¶ GPU (graphics processing unit) は 3D グラフィックスの描画や、画像処理を高速に計算できるように設計された演算装置です。 一方、一般的な計算で使用される CPU (central processing unit) は、幅広く様々な処理で利用されることを想定して設計されています。 そのため、GPU と CPU ではそれぞれ、得意な計算の種類が異なります。 GPU は、条件分岐を多用するような複雑な計算には向かない一方、行列計算のようなシンプルな計算を大量に並列処理する必要がある場合は
機械学習に使われる数学¶ 次章より 3 つの章にわたって、ディープラーニングを含む機械学習に必要な数学のうち、基礎的なものとして「微分」「線形代数」「確率統計」の 3 つについて、要点を絞り、簡潔に紹介していきます。 その前に、本章では機械学習 (machine learning) の考え方について大枠を掴み、どの部分でそれぞれの項目が登場するかを把握しておきましょう。 機械学習とは¶ 機械学習は、与えられたデータから、未知のデータに対しても当てはまる規則やパターンを抽出したり、それらを元に未知のデータを分類したり、予測したりする手法を研究する学術領域です。 機械学習は様々な技術に応用されており、例えば画像認識、音声認識、文書分類、医療診断、迷惑メール検知、商品推薦など、幅広い分野で重要な役割を果たしています。 教師あり学習の考え方¶ 機械学習の代表的な問題設定として、教師あり学習 (su
ニューラルネットワークとは¶ ニューラルネットワークは、微分可能な変換を繋げて作られた計算グラフ (computational graph) です。 本章では、まずは下の図のような、円で表されたノード (node) に値が入っていて、ノードとノードがエッジ (edge) で繋がれているようなものを考えます。 この図でいうノードの縦方向の集まりのことを層 (layer) と呼びます。 そしてディープラーニング (deep learning) とは、層の数が非常に多いニューラルネットワークを用いた機械学習の手法や、その周辺の研究領域のことを指します。 層(layer)¶ 上の図は、ニューラルネットワークを用いて、ワインに関するいくつかの情報から、そのワインが「白ワイン」なのか「赤ワイン」なのか、というカテゴリを予測する分類問題を解く例を表しています。 左側から、最初の層を入力層 (input
scikit-learn 入門¶ scikit-learn は Python のオープンソース機械学習ライブラリです。 様々な機械学習の手法が統一的なインターフェースで利用できるようになっています。 scikit-learn では NumPy の ndarray でデータやパラメータを取り扱うため、他のライブラリとの連携もしやすくなっています。 本章では、この scikit-learn というライブラリを用いて、データを使ってモデルを訓練し、評価するという一連の流れを解説し、Chainer を使ったディープラーニングの解説に入る前に、共通する重要な項目について説明します。 機械学習の様々な手法を用いる際には、データを使ってモデルを訓練するまでに、以下の 5 つのステップがよく共通して現れます。 Step 1:データセットの準備 Step 2:モデルを決める Step 3:目的関数を決める
微分と関数最小化の関係¶ 前章で微分が目的関数の最小化に役立つと紹介しました。本節ではまず具体例を用いてそのことを直感的に理解しましょう。 例として、下図のような下向きにくぼんだ形をした関数がどこで最小値をとるかを探す問題を考えます。 適当な点 \(\theta_{1}\) でこの関数のグラフに接する直線(接線)を考えます(注釈1)。 仮にこの接線の傾きが \(+3\) 、すなわち正の値であったとしましょう。この時、接線は右に進むほど高さが上がり,逆に左に進むほど高さが下がります。 \(\theta_{1}\) の周辺では、関数のグラフと接線は非常に近く、両者はほとんど見分けることができません。 すると、関数も接線と同じように \(\theta_{1}\) 右に進むと増加し,左に進むと減少していることがわかります。 次に、グラフ上の別の点 \(\theta_{2}\) においてこのグラフに
確率・統計の基礎¶ 本節では機械学習で用いる確率論、統計学の概念や用語を解説します。 世の中には「ランダム」に起こる出来事、もしくは背景のメカニズムがわからないため「ランダム」として扱わざるを得ない出来事が存在します。そのようなランダムな出来事を理論的に扱うには、出来事そのものや、ある出来事と別の出来事の関連を数学的に記述できなければなりません。確率論ではランダムな出来事のことを事象 (event)と呼びます(厳密な定義は本資料では省略します)。 本節では、まず事象を記述する道具として確率分布を導入し、それに関連する概念(周辺確率、条件付き確率、確率変数の独立)を解説します。さらにこれらの概念を用いてベイズの定理を説明します。ベイズの定理により、ある出来事が観測された時に、その原因となる出来事が起こった確率の計算ができるようになります。 次に、確率分布の中から観測データに適合した最適な確率
線形代数の基礎¶ 機械学習の理論では線形代数で用いられる概念が多く登場します。 これらの概念を利用することで、複数の値や変数をまとめて扱うことができるようになり、数式を簡潔に表現できるようになります。 本章では、特に以下の概念を順番に紹介します スカラ・ベクトル・行列・テンソル ベクトル・行列の演算(加減算・スカラ倍・内積・行列積) 特別な行列(単位行列・逆行列) 多変数関数(線形結合,二次形式)とその微分 スカラ・ベクトル・行列・テンソル¶ まず始めに、スカラ、ベクトル、行列、テンソルという 4 つの言葉を解説します。 スカラ (scalar) は、2.5、-1、\(\sqrt{2}\)、\(\pi\)といった 1 つの値もしくは変数のことを指します。スカラは温度や身長といった単一の数量を表します。スカラ変数を表すには のように、太字や斜体にされていない文字を利用するのが一般的です。 \
Chainerの入門に最適なチュートリアルサイト。数学の基礎、プログラミング言語 Python の基礎から、機械学習・ディープラーニングの理論の基礎とコーディングまでを幅広く解説します。Chainerは初学者によるディープラーニングの学習から研究者による最先端のアルゴリズムの実装まで幅広く対応するディープラーニングフレームワークです。
単回帰分析と重回帰分析¶ 本章では、基礎的な機械学習手法として代表的な単回帰分析と重回帰分析の仕組みを、数式を用いて説明します。 また次章では、本章で紹介した数式を Python によるプログラミングで実装する例も紹介します。本章と次章を通じて、数学とプログラミングの結びつきを体験して理解することができます。 本チュートリアルの主題であるディープラーニングの前に、単回帰分析と重回帰分析を紹介することには 2 つの理由があります。 1 つ目は、単回帰分析と重回帰分析の数学がニューラルネットワーク含めたディープラーニングの数学の基礎となるためです。 2 つ目は、単回帰分析のアルゴリズムを通して微分、重回帰分析のアルゴリズムを通して線形代数に関する理解を深めることができるためです。 機械学習手法は、教師あり学習 (supervised learning) 、教師なし学習 (unsupervise
Chainer チュートリアル 数学の基礎、プログラミング言語 Python の基礎から、機械学習・ディープラーニングの理論の基礎とコーディングまでを幅広く解説 ※Chainerの開発はメンテナンスモードに入りました。詳しくはこちらをご覧ください。 何から学ぶべきか迷わない ディープラーニングを学ぶには、大学で学ぶレベルの数学や Python によるプログラミングの知識に加えて、 Chainer のようなディープラーニングフレームワークの使い方まで、幅広い知識が必要となります。 本チュートリアルは、初学者によくある「まず何を学べば良いか」が分からない、 という問題を解決するために設計されました。 初学者は「まず何を」そして「次に何を」と迷うことなく、必要な知識を順番に学習できます。 前提知識から解説 このチュートリアルは、Chainer などのディープラーニングフレームワークを使ったプログ
はじめに¶ Chainer チュートリアルへようこそ。 このチュートリアルは、機械学習やディープラーニングの仕組みや使い方を理解したい大学学部生以上の方に向けて書かれたオンライン学習資料です。 機械学習の勉強を進めるために必要な数学の知識から、Python というプログラミング言語を用いたコーディングの基本、機械学習・ディープラーニングの基礎的な理論、画像認識や自然言語処理などに機械学習を応用する方法に至るまで、幅広いトピックを解説しています。 機械学習を学び始めようとすると、ある程度、線形代数や確率統計といった数学の知識から、何らかのプログラミング言語が使えることなどが必要となってきます。 しかし、そういった数学やプログラミングの全てに精通していなければ機械学習について学び始められないかというと、必ずしもそうではありません。 本チュートリアルでは、機械学習やディープラーニングに興味を持っ
このページを最初にブックマークしてみませんか?
『ディープラーニング入門:Chainer チュートリアル』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く