ニューラルネットワーク: 入力層、中間層(隠れ層)、出力層の3種類の層からなる。 層の数え方は重みを持つ層のみをカウントするパターン(中間層が1層の場合、2層ネットワークと呼ぶ)とすべての層をカウントするパターン(中間層が1層の場合、3層ネットワークと呼ぶ)があるので注意が必要。 ニューラルネットワークの繋がり方自体はパーセプトロンと同一。 活性化関数: パーセプトロンの以下の式を一つにまとめる。 y = 0 : x1 * w1 + x2 * w2 + b <= 0 y = 1 : x1 * w1 + x2 * w2 + b > 0 h(x)
文系エンジニアが学ぶ機械学習
0.はじめに 少し前からよく機械学習というキーワードを聞くことが多くなりました. 機械学習を学ぶ上では数学的知識が必要なことが多く,大学で数学を学んでいない方にとってはハードルが高いと思われがちです. そこで文系エンジニア目線で機械学習について学んだことをまとめて見ました. 同じ文系エンジニアや機械学習初心者の助けになればと思います. 1.前提 以下の言語・ライブラリを利用しております. python : 2.7.6 tensorflow : 0.11.0 2.機械学習の種類 教師あり学習(supervised learning) 学習に用いるデータの中に,正解となる値(予測したい)値が含まれているもの. 例えば有名なMNISTの場合,0-9の画像と共にその画像が表す数字がセットとなっているため,教師あり学習に分類される. 教師あり学習は以下のいずれかに分類できる. 分類(classification) 2種類以上に分類されているデータを用いて学習し,未分類のデータがどの分類に含まれるのかを予測する.別の見方をすれば,連続した値ではなく飛び飛びの値を用いた教師あり学習と考えることができる. MNISTもこれに含まれる.(0-9のどの数字に当てはまるか分類するため) 回帰(regression) 出力結果(予測結果)として望む値の中に,1つ以上の連続的な値が含まれている場合,回帰と呼ばれる. 例えば,面積と高さから建物の価格を予測する問題がこれに該当する. 教師なし学習 学習に用いるデータに正解となる答え(target values)が含まれていない場合,教師なし学習と呼ばれる. 学習の用途としては以下の3つが考えられる. クラスタリング: データを似た値同士でグループ分けする 密度予測: 入力値からデータの分散度合いを予測する 低次元化: 高次元のデータを2-3次元のデータに変換する.これはデータの可視化等に用いられる. 3.機械学習に用いるデータの考え方 機械学習ではデータをもとにアルゴリズムの学習を行い,その後新しい別のデータに対して学習したアルゴリズムを適用して評価を行う. そのため通常の機械学習ではデータを学習用データ(training
macでdockerからGUIアプリを立ち上げる
1. 前提 OS: Mac OSX Docker, homebrewをインストール済み GUIで動作させたいDockerコンテナがある 2. 実行方法 (1) 環境のセットアップ homebrewを使って必要なソフトウェアをインストールしていきます. homebrewのインストールがまだであれば以下のコマンドを実行してください.
1 |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
最後に,XQuartzというX Window Systemのクライアントを実行します.
1 2 3 4 |
brew install socat brew install caskroom/cask/brew-cask brew cask install xquartz open -a XQuartz |
(2) socatの実行 (1)の最後に立ち上げたXQuartzのウィンドウ上にて以下のコマンドを実行します.
1 |
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" |
XQuartzのウィンドウ上にて実行することがポイントです. 不安であればウィンドウ上でecho $DISPLAYを実行し,値が返ってくることを確認してください. (3) dockerコンテナの実行 以下のようにdockerコンテナを実行してください.
1 |
docker run -e DISPLAY=192.168.0.2:0 docker_container |
ポイントは ・DISPLAY=で指定するIPはdockerを実行している(=host側の)端末のIPです. ifconfig等を実行して,端末に割り当てられているIPを確認してください. docker containerの内部からアクセス可能なIPである必要があります.
Seleniumの実行時のWebDriverExceptionに対処
Seleniumのpythonライブラリを利用した際、WebDriverException(“The browser appears to have exited “が発生したので、その対処法をまとめました.