デジタル・デザイン・ラボラトリーな日々

アラフィフプログラマーが数学と物理を基礎からやり直す。https://qiita.com/yaju

機械学習

シグモイド関数を理解してみる

はじめに 機械学習の学習すると必ず出てくる用語にシグモイド関数があります。 今回はこれを理解してみたいです。 シグモイド曲線 シグモイド曲線は入力した値を0から1の間に収めてくれる関数の1つです。 多くの自然界に存在する事柄は、このようなS字曲線を…

サポートベクターマシーン(SVM)を理解してみる

はじめに ディープラーニング(深層学習)の理解もまだ進んでいないわけですが、今回は勝手に古い技術と思い込み何も理解しようとすらしていなかった サポートベクターマシン(Support Vector Machine:SVM)に着目してみます。 サポートベクターマシンとは サポ…

Google Colaboratory上でmatplotlibのアニメーションを再生する

はじめに 最近は、Anacodaを使わずにGoogle Colaboratoryを使用しています。 Google ChromでGoogle Colaboratory にアクセスすれば、すぐにPythonが使えますからね。 下記サイトでは勾配降下法 (Gradient Descent)のグラフをアニメーション化しており、かっ…

Google ColaboratoryでGitHubのCSVデータをpandasに読み込む

はじめに 最近は、Anacodaを使わずにGoogle Colaboratoryを使用しています。 Google ChromでGoogle Colaboratory にアクセスすれば、すぐにPythonが使えますからね。 機械学習を学ぶ上では、サクッと使えるデータが必要です。 Google Colaboratoryでファイル…

ディープラーニング(深層学習)を理解してみる(識別問題 その2)

はじめに 3月の問題が解決しないまま2ヶ月が経ってしまい、4月分はうっかり記事を飛ばしてしまった。 このままだと5月分の記事も飛ばしてしまうので、あとで埋めるために5月分の記事を立てた。 しばしお待ち下さい。

ディープラーニング(深層学習)を理解してみる(識別問題)

はじめに 前々回の「対数logを理解してみる」と前回の「自然対数の底(ネイピア数) e を理解してみる」では、人工知能に使用する基礎的な数学知識が足りなかったのでシリーズとは脱線して書いてみました。 また、このシリーズで書いていきます。 ニューラルネ…

自然対数の底(ネイピア数) e を理解してみる

はじめに 前回、対数を理解してみました。 yaju3d.hatenablog.jp 今回は機械学習を学ぶ上で出てくる自然対数の底(ネイピア数 e)とは何かを理解していきます。 間違える人は結構多いですが、 は「自然対数」ではありません。「ネイピア数」あるいは「自然対数…

対数logを理解してみる

はじめに 機械学習を学んでいると対数logがでてくる。基礎的なことから対数を理解してみたい。 指数はイメージし易いが、対数は分かりにくいと思われている。指数と対数はペアの関係にあり、かけ算とわり算のように逆関係にある。 先ずは、指数の大きさを視…

「サザエさんのじゃんけん データ分析」の2017年の結果

はじめに 明けましておめでとうございます。 昨年も東芝に暗雲が立ち込め、東証2部に降格して日経平均から外れ、ついには18年3月末にサザエさんからのスポンサー契約を降板する方向で調整とあいなりました。 さて、サザエさんのじゃんけんを長年記録しデータ…

ディープラーニング(深層学習)を理解してみる(勾配降下法:計算確認)

はじめに 前回の続きです。 yaju3d.hatenablog.jp 前回の計算が本当に合っているのか、Pythonを使って実証してみたいと思います。 プログラム 重みの更新 ①現在の重みで推測値を求める import numpy as np a = np.array([10, 20]) b = np.array([[1,3,5],[3,…

ディープラーニング(深層学習)を理解してみる(勾配降下法:計算方法)

はじめに 前回の続きです。 yaju3d.hatenablog.jp 幾つかの人工知能関連の本やWebサイトを見ても、数式やプログラムのソースリストは記載されていても、数学が苦手な自分が理解できるようになるまでの説明が無い、そんな中でも下記3つの本(Kindle)がまだ理解…

ディープラーニング(深層学習)を理解してみる(勾配降下法:ベクトル、内積、微分、偏微分)

はじめに 前回の続きです。 yaju3d.hatenablog.jp 幾つかの人工知能関連の本やWebサイトを見ても、数式やプログラムのソースリストは記載されていても、数学が苦手な自分が理解できるようになるまでの説明が無い、そんな中でも下記3つの本(Kindle)がまだ理解…

ディープラーニング(深層学習)を理解してみる(勾配降下法:最急降下法と確率的勾配降下法)

はじめに 前回の続きです。 yaju3d.hatenablog.jp 勾配降下法をどうして使うのかは理解できたのですが、その計算方法がまだ理解が足りてなくて、微分の本とかを読んでいました。 数学は苦手なんですが、理解はしたい。おまじないとかそういうルールだからと…

ディープラーニング(深層学習)を理解してみる(勾配降下法)

はじめに 機械学習をやる上では「勾配降下法」を理解しておきたい。 「勾配降下法」で検索すると自分が書いた記事が見つかります。 yaju3d.hatenablog.jp 資料を元に書いた記事なので当時はよく理解していたわけではないですが、今、読み返すとふむふむと言…

ディープラーニング(深層学習)を理解してみる(TensorFlow Playgroundを試す)

はじめに 前回はパーセプトロンを多層にすることで、線型分離可能でない問題を解けることを学びました。 yaju3d.hatenablog.jp これを視覚として見ながら学びたいということで見つけたのが「TensorFlow Playground」となります。 しかし、初見では何がなんだ…

ディープラーニング(深層学習)を理解してみる(パーセプトロンと論理演算)

はじめに TensorFlow関連の記事を書いている割には、ディープラーニング(深層学習)について理解度が足りてないということもあって基礎的なところから理解してみようと思いました。幸い、ここ1年で本やブログ記事が増えてきたので助かります。 参考にした下記…

Chainer ver2.xをWindowsにインストールしてみた

はじめに 2017/02/23に「Chainer」の大幅アップデートが公開されました。 気になっていたサンプルプログラムがChainer用だったこともあり、インストールしてみました。 Anacondaを使用しているのでパッケージ管理システム(conda)によりChainer用環境で作成し…

Shizuoka.py #6 and shizudevの資料公開

はじめに 2017/02/18(土)に「Shizuoka.py #6 and shizudev」が開催され、静岡県島田市の会場に11名集まりました。Shizuoka.pyは名前の通りPython向けの勉強会で、shizudev(静岡Developers勉強会)は開発全般の勉強会で今回共同開催となりました。昨年は人工知…

「サザエさんのじゃんけん データ分析」の2016年の結果

はじめに 明けましておめでとうございます。 昨年は東芝の不正会計について触れたのですが、また今年も東芝のことを触れるとは思っていませんでした。 不正会計後に少しずつ回復傾向にあったのに、まさか昨年末に再度危機的状況になるなんて。 東芝家電のた…

Visual Studio CodeをPythonの開発環境として使ってみる

はじめに これまでPythonを使用するのに「Jupyter Notebook」を使用してきたのですが、簡単な確認ならこれで十分なんですが本格的に開発するとなるとブレークポイントを使ったデバッグが出来ないと自分には辛いということで、Python開発環境を整えることにし…

Tensorflowの上位ラッパーライブラリ Kerasを試してみる

はじめに これは、TensorFlow Advent Calendar 2016の16日目の記事です。 本当は、Tensorflowで足し算をやりたかったのですが、間に合いませんでした。足し算といっても桁上りがあるので簡単ではなさそうです。 下記サイトのNPI(Neural Programmer-Interpret…

線形回帰で二乗和を2で割る理由について

はじめに これは、機械学習に必要な高校数学やり直しアドベントカレンダー Advent Calendar 2016の10日目の記事です。 線形回帰 ー 誤差の和の式(データ個数 n 個の場合) 2乗することに関しては、以前書いた下記の記事にてピタゴラスの定理で距離を求めると…

TensorFlowがWindowsサポートしたのでインストールしてみた

はじめに TensorFlow 0.12からWindowsをサポートするようになりました。これにより、VirtualBoxやDockerを使う必要がなくなります。 【追記 2017/03/02】 2017/02/16にTensorFlow 1.00がリリースされました、遅ればせながら今回TensorFlowをバージョンアップ…

VirtualBoxにUbuntu16.04 LTS と TensorFlow をインストール

はじめに 日本語形態素解析システム「JUMAN++」をインストールするために、久しぶりにVirtualBoxのUbuntuを使ったのですが、各システムのバージョンも古くなってきているので新規にインストールし直します。 以前書いた下記の記事(2016年3月27日)を基にイン…

TensorFlowコトハジメ Word2Vecで「君の名は。」と戯れてみた

はじめに 前回、Word2Vecを初めて試してみて面白いと思ったので、日本語に挑戦することにした。 yaju3d.hatenablog.jp 日本語に挑戦するにあたり、どうせなら旬なネタがいいなと思って、今のお気に入りは火曜ドラマ「逃げるは恥だが役に立つ」で「みくに - …

TensorFlowコトハジメ Word2Vecによる自然言語処理を試す

はじめに 以前、ベイジアンフィルタを実装して自然言語処理に興味を持ち始めたので、とりあえず「king - man + woman = queen」で有名になった「Word2Vec」を動かしてみたいと思った次第です。 yaju3d.hatenablog.jp Word2Vecとは Word2Vecは米グーグルの研…

TensorFlowコトハジメ 偶数と奇数に分類

はじめに 久しぶりにTensorFlowをさわってみました。 人工知能を勉強しようとしてもハードルが高いし、手書きの文字を分類したからって何って感じ、画像を集めるのも大変だし結果を出すにも時間がかかるしね。 先ずはリハビリとして何をやろうかと思ったのが…

確率を理解してみる-ベイジアンフィルタを実装

はじめに 前回、「ベイズの定理」について説明しました。 yaju3d.hatenablog.jp 今回、ベイズの定理を利用したベイジアンフィルタの中で最もシンプルなナイーブベイズ(Naive Bayes)を実装してみます。 ベイジアンフィルタ ベイジアンフィルタは、迷惑メール…

TensorFlowコトハジメ Fizz-Buzz問題

はじめに Fizz-Buzz問題 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 ここ最近、通勤中の車の中でFiz…

人工知能ハンズオンの資料公開

はじめに 静岡Developers勉強会では、今年の勉強会のテーマとして「人工知能ハンズオン」を2016/4/23に開催しました。 勉強会が行われた静岡市産学交流センター 小会議室2には、10人+2人(私と友人)=12人名が集まりました。あと、懇親会は5人で行きましたこと…