ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Linuxをスクラッチから!聞いてきた

2019-08-31 20:58:01 | Linux
もう、先週のことになるけど、8月24日 オープンデベロッパーズカンファレンス2019にいってきて

Linux From Scratch OSを全てソースコードから構築する方法

を聞いてきたので、メモメモ




LFSの目的
LFS2のしくみ
LFS成功の秘訣

なぜLFS(Linux for Scratch)
・学習システムの全体像
・自在に変更できるシステム
・高速なシステム
  カーネル、いらないものをなくす
・開発の動向の情報収集

ストールマン博士 4つの自由
・実行する自由
・研究し、改変する自由
・再配布する自由
・改変したものを配布する自由

バラエティ
LFS Linux From Scratch
BLFS(Beyond)発展
CLFS(Cross)異種ハード
ALFS(Automated)自動
Pi-LFS(Raspberry Pi) Bootローダー以外はできる

GNU/Linux一般的なインストール
・ハードディスクの区画(パーティション)
 →cfdisk,fdisk,sfdisk
・ソフトウェアの格納
・設定
 →起動設定、時刻設定

基本的な構築プロセス
・./configure
 いろんなmake→環境を読みこむ必要性

・make
 すちゅあーどふぇるどまん さんがつくった。

・make install
 
→これになれていると、成功する(これを何回もやってる感じだから)

configureをやりだしたのは、ストールマンさん


格納先の指定
・./configure
・,/configure --prifix=/usr/local
・,/configure --prifix=/mnt/new-os/usr

失敗例
,/configure --prifix=/mnt/new-os/usr
make
make install

単純なパス変更ではダメな理由
・親システムのライブラリにリンクされる
・絶対パスが刻まれる
・親からバイナリをコピーするパッケージ

どうする?
/toolsを作る→作業用ディレクトリ
この中に格納する/tools/bin

作業用システムの構築
,/configure --prifix=/tools
make
make install

chroot環境で本システムの構築
,/configure --prifix=/user
make
make install

→二重に作る
・一回、ワーク用に作る
・chrootで正しいものをつくる

カーネル構築
・Linux構築は最後に行う
・構築時の各種設定については詳しくない
・ほかのシステム要素との干渉は少ない
  →ファイルシステム
※日本語の情報がどれだけあるか

主要な基幹ソフト
・gccコンパイラ
・glibcライブラリ
・binutilsアセンブラ、リンカ他

LFS構築成功の秘訣
1.教書から逸脱しない
2.進捗管理の導入
3.危険な操作の把握
4.不慣れな操作の事前練習
5.おかしいと思ったら一旦停止
6.調査の励行(相談相手)

品質管理のサイクル
 plan:計画
 do:実行
 see:検証
 Adjust:調整
→うぉるたーしゅーはーと
 えどわーどでみんぐ
  →ベル研究所
Linux kernel
make menuconfig
ncurses

ファイルシステム
ext4
reiserfs
iso-9661→いれとかないとCD読めない
romfs:組み込み系読みだけ→cramfs,squashfs 圧縮
vfat
ntfs

■参考サイト
LFSブック日本語版
http://lfsbookja.osdn.jp/

Linux from scratch
http://www.linuxfromscratch.org/

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

大田区の人口とCyboze.comのユーザー数はどっちが多い?

2019-08-30 09:09:09 | Weblog
ODC2019に行ってきて、

Cybozu.comを支えるOSS 2019夏

を聞いてきたのでメモ(表題の件は、第三問)




・第一問
 長野オリンピック開催と、サイボウズ株式会社創業、古いのはどっち?
 →サイボウズのほうが古い(創業22年)
  インターネットの技術を会社に(イントラネット)

・第二問
 LLイベントとCybozu.com始まりが古いのはどっち?
 →LLイベントのほうが古い。2003年から
  Cyboze.com 2011年11月にサービス開始)

・第三問
 大田区の人口とCyboze.comのユーザー数はどっちが多い?
 →大田区の人口734653人
  Cyboze.comのユーザー数130万人+

・Cyboze.com
 がるーん
 サイボウズOffice
 kintone
 メールワイズ

 横浜市全体で統一、採用→Garoon

 Kintone:クラウドネイティブ

 メールワイズ:メールの受付を共有する→複数人で対応するとき便利

・ホットトピックス
 脆弱性報奨金制度2019
 サイボウズ・ラボユース:未踏プロジェクトの僕らが勝手にやってる版
 Necoプロジェクト専属採用枠

・Cybozu.comを支えるOSS
 ベースはUbuntu LTSそこからそぎ落とし、パッチ当ててる
 出たら検証をはじめ、周回遅れになっている
 ビジネスタイムにアクセス集中、突然スパークは来ない

 L4LB
 L7LB(nginx)→Jetty(kintoneで)→MySQL
 KafKa
 Hadoop

お客さんごとにVM建てている、

Kintone
バック
Spring

フロント
Google クロージャー ライブラリ
React
Npm

サイボウズ開発
yrmcds(よるまくど)
 →memcached:セッションをキャッシュしたくなる
   memcached:落ちる、立ち上がると忘れる
 レプリケーションしてくれる

cyboze-go/cmd

WalB(わるびー)
 ブロックデバイスでバックアップする
 ハードディスクに書く直前にバックアップ
 バージョンを選ぶ

git hubのページで公開

aptutil

業務でパッチを書く
・会社で出したくないものを指定するようにした
 →それ以外はOK
 サイボウズのOSSポリシー(CC0)

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ドコモのAIエージェントAPIを使って対話型アプリ!を聞いてきた

2019-08-29 08:16:19 | Weblog
ODC2019続き

ものがしゃべる?ドコモのAIエージェントAPIを使って対話型アプリを開発しよう
 株式会社 NTTドコモ

をメモメモ



1.自己紹介

1.ドコモのAIエージェントAPI
2.VUI(ぼいすUI)を含んだアプリ

・ボイスのインターフェースが簡単に作れる
・デモ
 チケットを買う
  人が対応しているのと同じ感覚でのUIが提供可能

 メニュー
  たくさんのものから絞り込む→ボイスならひとこと
  複数でもOK
  対話型UIをなぜDOCOMOが?→7年以上前から しゃべってコンシェル
  my daizとプラットフォームは一緒でみんなに使ってもらえるように

・エンジン
 多目的対話エンジン
  音声認識
  自然言語処理
  音声合成
→シナリオを育てる
 コントロールできるシナリオ
 なんでもしゃべれるようにはならないのでは
 対話設計 SUNABAで公開xAIML(ざいむる)
  URLはパンフレットで

 対話設計変更
  →GUIで会話編集

 複数のSDK:らずぱい、UNITYも用意

 外部APIとの連携
  標準RESTに対応
  豊富な音声モデル(53種類)

 どんな声→デモ

 オープンハウス

・作ってみたくなりました?
 ドキュメントサイト   https://docs.sebastien.ai/
  に行って読めば

 ハンズオン
 GUI開発ツール

 今までにない体験を提供するあ売りケーションが作れる
 VR握手会

 AIエージェントAPIはUI,UXのツールである
  AIではありません「多目的対話エンジン」です

 考え方の基本
  従来のUIの弱点の保管


・お客様にご提案するにはデモが有効!

 AIエージェントのソリューションテンプレート

 ソリューションテンプレートのビジネススキーム
  開発投資
  セールスサポート:販売チャネル

・ボイスUIを使ったサービスはまだまだブルーオーシャン

AIエージェント開発サイト
https://agentcraft.sebastien.ai/


ドコモAIエージェントAPI マネジメントサイト
https://coppo.aiplat.jp/corp/login




  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

グラフDBは文章をどうやって理解するのか聞いてきた!

2019-08-28 08:18:28 | Weblog
8月24日にODCに行ってきて

グラフDBは文章をどうやって理解するか?

を聞いてきた!ので、その内容をメモメモ




Graph-Powerd Translation Model

・アンケート グラフDBを
 聞いたことある人 ある程度
 使ったことある人 0
→まずいですね・・

・データから知恵へ
 データ
 インフォメーション→RDBはこのへん
 ナレッジ(知識)
 インサイト(洞察)
 ウィズダム(知恵)

・アジェンダ
 自己紹介
 文章構造

・自己紹介
 ぽーどる てくにっく
 コーヒーの豆のDB作っている

・文章構造
 SVO、SOV
 →よのなかには2種類ある
 SVO 英語、中国語(42%)
 SOV 日本語、韓国語(45%)
 →たしたら100じゃない:これ以外の文法もあるということ

 文字
  中国:繁体字、簡体字
  日本語、かんじ、かな、えいご

 漢字コード
  むかしはSJIS、いまはUTF-8
   →CSVにはSJIS残っている

 常用漢字
   1946年→1981→2010年2136文字(SJIS以外の字も)

 Google翻訳
   2006年まで SMT
   2016年 ニューラルマシントランスレーション(NMT)
 それなりに翻訳できるが、まったく意味が違うことがある
  →コンピューターはどうやって考えますか

・Graph Database
 3つ
  ノード:レコード
  リレーションシップ
  プロパティ:各項目
 →パターンを検索しに行く

・Neo4J
  さいふぁー、ねおはマトリックスの中に出てくる
  コミュニティ版はフリー
  デスクトップ版ある
  Java

 ポケモンの進化をグラフDBで表現

・テキストグラフ
 日本語:
   形態素解析処理がいる
   係り受け分析を行う
   動詞もノードにしてしまう

・どうやって理解するか
  Neo4Jはスキーマ定義がない
  文章を入れる
  ケーキの知識を入れる
  文章と知識をつなぐ
  質問を入れる

・翻訳
 英語の例文を作成する
  GQL(ぐらふくえりーらんげーじ)
 意味→接続
 日本語を作る
→やくすとき、どこにかかっているのか、グラフにすると一目瞭然

ナレッジベース
 ConceptNet
 JSON FORMAT
   Linked Open Data API

仕事の手順をDBに入れられる

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ディープラーニングはPytorch!のつづき

2019-08-27 00:44:04 | AI・BigData
この前、

続いてディープラーニングはPytorchを習ってきた
https://blog.goo.ne.jp/xmldtp/e/b344fcad6b9572ffa608f7fc57d0a3e0


を書いたけど、その続き

【初心者向け】ゼロからわかるPyTorch実践入門ハンズオン~後編~
https://liberal-arts-beginners.connpass.com/event/142007/


も聞いてきたのでメモメモ




畳み込みニューラルネットワーク

MLP:全結合層
CNN
・CNNでできること→画像の検出
CNNの特徴
・移動不変性:対象どこでもOK
・合成性
畳み込み層
・行列に対するオペレーター
 →3X3のようなフィルターを用意して、畳み込み演算する
プーリング層
・情報圧縮:マックスプーリング
 →過学習を抑制できる

CNNの構成要素
・カーネルサイズ:フィルタのサイズの大きさ
・ゼロパディング
・ストライド

もう一つの層の作り方
・層ごとにまとめる→畳み込み層、マックスプーリング
CNNは入力チャンネル数(白黒は1)
 畳み込み層はConv2D

チャンネル数

AlexNet
・8層くらいある。チューニングパラメタ多い
 フィルター11
 LRN:彩度調整
 重複プーリング
→PyTorchには、はいっている


転移学習
 1000枚の画像
 →最適なパラメータ
 pretrained=TruebにすればOK
 →パラメータの凍結:勾配を微分しない
 →学習率を途中で変えられる(エラースケジューラー)

やること
(1)CNNの構造理解
(2)今日の内容(復習)
(3)改造

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「中国政府は香港へのデマ拡散、不穏化にYouTubeを組織的に利用」だそうな

2019-08-26 00:40:55 | ネットワーク
Googleが「中国政府は香港へのデマ拡散、不穏化にYouTubeを組織的に利用」と発表
https://jp.techcrunch.com/2019/08/23/2019-08-22-google-youtube-china-hong-kong-protests/

(太字は上記サイトより引用)

今週始め、TwitterとFacebookは、中国政府がソーシャルメディアサイトを使って香港情勢に関連してフェイクニュースなどニセ情報を拡散し、デモの弱体化を図っていると発表した。Googleグループの有力メンバーであるYouTubeもこれに続くこととなった。

とのこと

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Office soloのプロダクトキーのカードを買ったんだけど、そこからどうするの?

2019-08-25 08:39:32 | Officeソフト&VBA
新宿西口のビッグカメラで、Office soloのプロダクトキーのカードを買ったんだけど
そこからインストールするまでで悩んだので、メモ

【悩みの原因】
Office 365 または Office 2019 を PC または Mac にダウンロードしてインストールまたは再インストールします。
(リンク先は長いので、URLを書かず、直接リンクしています)
をみても、どのタイミングでプロダクトキーを入れているのかわからない。
「プロダクト キーがお使いの製品に含まれている場合」は書いてあるけど、今含まれていないから、買ってきた。その人は?

【解決策】
Office のプロダクト キーを入力する場所
をみる。

Office 365、Office 2019、Office 2016、Office 2013 (PC および Mac)
に書かれている手順1、手順2のとおり、www.office.com/setup にアクセスした場合、
サインインして、そのあとにプロダクトキーを聞いてくるので、そこで入れる。

そうすると、最終的にこの画面

になるので、左の「Officeのインストール」をクリック。ダウンロードして、
それをインストールした。インストール中「すぐ完了します」みたいなのが出るけど
蕎麦屋の出前だった(全然完了しない。かなりかかる)

終わったら立ち上がったけど、これでいいのかな?










  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

北朝鮮が韓国を攻めても、GSOMIAが破棄されてるから、日本の自衛隊さんは助けに行かなくてOKっていう解釈でいいんだよね!

2019-08-25 08:29:03 | そのほか
だって、軍事情報を交換できないんだから、
助けようがないよね。
集団的自衛権とかいわれても、関係ない。
軍事情報を交換できない以上、見殺しにするしかないよね。

それから、中国、ソ連が、竹島から韓国を攻めても
軍事情報が交換できない以上、
知らせないでOK(知らせちゃいけない?)
軍事情報を交換できない以上、見殺しにするしかないよね。

・・・っていう解釈で間違いないよね・・・


  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

cafe GLOBE再開してるって、知ってた?

2019-08-24 15:33:59 | そのほか
水道橋というか、神保町にあるCafe GLOBEが
再開してるって、知ってた?

むかし、中年の男の人と、女の人がやっていて、
いいかんじのお店だったんだけど、病気?とかいうので、
ず~としまっていたじゃないですか・・

今日、前通ったら、再開してました。
お店の店員は若い男女の人に変わっていましたよ。
お店の中のイメージは全然変わらない
(あ、自由に聞いていいというレコードプレーヤーとギターが入った
 トイレに行くところ。隠れてるから見えないかも)

で、WiFiが入った!!!
今、そのWiFiを使って、このブログ書いている

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ファーウェイ、新AIチップ発表

2019-08-24 01:41:23 | AI・BigData
ファーウェイ、AI開発を加速 新AIチップ発表、脱「米依存」
https://www.msn.com/ja-jp/money/news/ファーウェイ-ai開発を加速-新aiチップ発表-脱-米依存/ar-AAGdEnF

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

続いてディープラーニングはPytorchを習ってきた

2019-08-23 08:27:33 | AI・BigData
回帰、分類、次元圧縮ときて、Scikit learnを使った機械学習のお勉強はここまで
(普通はあと、決定木をやると思う)。
ディープラーニングでscikit learnはつらいので、Pytorchで習ってきた!

【初心者向け】ゼロからわかるPyTorch実践入門ハンズオン~前編~
https://liberal-arts-beginners.connpass.com/event/142006/

をメモメモ





・今日の目標
 PyTorchの基礎文法
 ニューラルネット
 動かせるようになるまで


・自動微分を用いて簡単にニューラルネットワークを記述できる

PyTorchでできること
・テンソル
・自動微分
・損失関数、最適化関数が用意されている

単回帰分析
学習→推論

損失関数・最適化関数
・パラメータを決めるのに必要
・例:予測値の値と実測値の値の差の二乗を足し合わせる
E(Θ)=∑(yk-y~k)^2
 ↑
 パラメータ、いまはa,b

最適化関数
 E(Θ)を最小化するa,b
 →勾配降下法を使う
  微分して、傾きで決める
   改良1・確率的勾配法(SGD)、Adam

ニューラルネットワークについて
 重みw
 活性化関数:非線形の関数をはさむと・・

活性化関数
 ReLU関数(れる):0までは0、それ以降は直線
 シグモイド

ハンズオン
Google colabの利用
PyTorchはインストール簡単
import torchで使える

初期化されていない行列:何か入ってる
add_ → +=
転置
itemで肩まで出ししてくれる
.numpyでnumpyが入れるようになる

自動微分
テンソル用意
式を用意
.backword
勾配

最適化
tourch.optimにはいってる

やること(学習)
 モデルを決める
 損失関数を決める
 最適化関数を決める

ネットワーク
何X何のデータが来るか確認→ここがわからないと、組めない

(1)今日の内容理解
(2)論理和
(3)モデルの中身を変えてみる

公式ドキュメント
https://pytorch.org/


  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

回帰、分類ときて、次は次元圧縮を習ってきた!

2019-08-22 08:12:55 | AI・BigData
次は次元圧縮!

8月16日、

【入門者・初心者向け】scikit-learn を用いた機械学習入門ハンズオン~次元削減~
https://liberal-arts-beginners.connpass.com/event/141362/


を聞いてきたのでメモメモ!




次元削減

主成分分析(Pricipal component analysis:PCA)
 データを新たな軸に移す
 →情報の損失が起きる:情報は保ちたい
  エントロピー:分散の対数で表せる
  →情報量を多く保つには分散を最大化させる
 主成分を直交するように、次の軸をとっていく

固有値、固有ベクトル
 正方行列:たてよこ同サイズの2次元配列
 のN乗を計算しやすくするために考案された

そこで、対角行列(インデックスが同じ要素だけ、値を持つ)
 a 0        a^n 0
0 b  このN乗は  0 b^n
ここで出てきたのが、固有値・固有ベクトル
 AV =λV
いま、サイズをMとする(縦にも。横にもM)そうすると
AV =λVの組は多くの場合M個ある
新たな行列 V=「V1,・・・,Vm]
正方行列が、対角行列で描ける

主成分分析の話
分散共分散行列を用いて、射影後の分散に最大を考える
制約u^2=1を導入すると

 ラグランジュの未定乗数法を用いて

 最大化→微分して0→λを用いて表す→固有値問題に

よって、主成分を求める→分散共分散行列の固有値を求めればよい

主成分はいくつ必要か
基準1:累積寄与率が8割以上になるように採用
基準2:固有値が1以上の主成分のみ採用(データの標準化を行うこと)
i番目の主成分の累積寄与率

非線形への拡張
・PCAでは、非線形を扱えない
・方法は3つ
 (1)データそのものを工夫して、線形にする
 (2)カーネルPCA
 (3)オートエンコーダー

因子分析
・せんざいいんしのそんざいをかていする
 データ分析に向いている

主成分分析と因子分析
主成分分析:①観測データ→②主成分
因子分析:①潜在因子→②観測データ
→因果関係が逆

次元削減
・計算コストの省略
・2次元にした→可視化
・大規模なデータでは、疎であることが多い(値が0であることが多い)
 →手書き数字
 画像:ピクセルが白→0 黒→1
 筆跡以外は0
→線形回帰で多重共線性があるとき、因子分析・PCAで因子、主成分を用いれば
 共線性が消えて、きれいに回帰できる

ニューラルネットワーク
入力にX、出力にX(同じもの)を入れると、次元圧縮(中間層で)の後、
 元の次元を復元できるように訓練できる

Scikit-learnとTensorFlowによる実践機械学習


はんずおん

●データの正規化
DATA = load_wine()
label=DATA.target
dataset=pd.DataFrame(DATA.data, columns=DATA.feature_names)
dataset=scipy.stats.zscore(dataset)

●PCA
from sklearn.decomposition import PCA
pca=PCA(n_components=i)
pca.fit(dataset)

n_components:主成分の数

●オートエンコーダー
from sklearn.neural_network import MLPRegressor
MLPR=MLPRegressor(hidden_layer_sizes=(2,),activation='logistic',max_iter=10000)
MLPR.fit(train_X,train_X)

#fitのとき、train_X、train_Xと同じにするのがポイント

# weights:出力層のところの重みづけで圧縮されている
W=MLPR.coefs_
W_1=W[0]

●因子分析
from sklearn.decomposition import FactorAnalysis

#データの設定
number_of_Factors=3
D=load_boston()
t=D.target
X=pd.DataFrame(D.data,columns=D.feature_names)
X=scipy.stats.zscore(X)
X=pd.DataFrame(X,columns=D.feature_names)

#因子分析
FA=FactorAnalysis(n_components=number_of_Factors,tol=0.0001,max_iter=100000)
FA.fit(X)

#Log Likelihood: 対数尤度

#因子負荷量を出す
# FA.components returns Factor Loadings
Factor_Loadings=FA.components_.T
result=pd.DataFrame(Factor_Loadings,columns=list(range(1,number_of_Factors+1)),index=X.columns)
print(result)

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

回帰の次は分類を習ってきた!

2019-08-21 08:50:56 | AI・BigData
回帰の話の次は分類!ってことで

【入門者・初心者向け】scikit-learn を用いた機械学習入門ハンズオン~分類器~
https://liberal-arts-beginners.connpass.com/event/141345/

で習ってきた内容メモメモ




機械学習のフレームワーク
・機械学習:与えられたデータ→教師あり、教師なし学習
・今日は分類
・特徴選択:重要な変数を選び出す→特徴量

・分類
 入力:特徴量
 出力:分類

・今日
 フィッシャーの線形判別
 ロジスティック回帰
 ニューラルネットワーク

・精度は問題に起因
 パラメータ:
  学習で決まる
  人間が与える:ハイパーパラメータ

・検証:k-fold cross validation K=10(10 fold closs validationが多い)

・評価
 正答率:正解数/N
 混同行列
 F値

 混同行列
  モデルの出力
    1   0
正 1 TP   FN 
解 0 FP   TN

 TPとTNは正しい回答
 FPとFNは間違い

正解率=(TP+TN)/N
適合率(Precision):TP/(TP+FP)・・モデル1のデータの当てはまり
再現率(recall):TP/(TP+FN)   ・・正解1のデータの当てはまり

F値=2/(1/適合率+1/再現率)

・フィッシャーの線形判別
 非確率的アプローチ
 全データを射影する方向を決定する
  →射影した後、
   同じクラスのデータの分散を小さく、
   ほかのクラスとのデータの分散を大きくなるようにする

 →射影方向と直交する線が判別境界になる


・ロジスティック関数による判別
 ロジスティック関数σ=1/(1+exp(-x))
 ロジスティック回帰:以下の関数を学習
   y(x)=σ(wT,x) wを見つけたい
 出力は、クラスに属する「確率」

・ニューラルネットワークによる判別
 ソフトマックス関数→戻り値はベクトル(1次元配列)
  softmax(x)=[exp(x1),exp(x2),…exp(xm)]/∑exp(xi)
 →ソフトマックス関数の各要素:クラスiに属する確率
 ニューラルネットワークでは出力層の活性化関数にソフトマックス関数を使う

はんずおん
LDA:線形判別

train_test_split(data_X, data_y, test_size=0.33,shuffle=True)
→訓練データとテストデータを分けている(0.33→3分の1)

k_fold=KFold(n_splits=split_size,shuffle=True)
→訓練データを、クロスバリデーションするためにバッチにわけている

for train_indices, validation_indices in k_fold.split(X_train):
TRAIN_INDICES.append(train_indices)
VALIDATION_INDICES.append(validation_indices)

正規化
 Xi=(xi-mean(x))/Sqrt(Var(x))
import scipy.stats
データフレームを読み込んだ後
data_x=scipy.stats.zscore(data_X)
データの基本統計量を出す
print(D.DESCR)

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

線形回帰を習ってきた!

2019-08-20 08:38:27 | AI・BigData
お盆休みに、一通り機械学習習ってきた!
まずは線形回帰

8月10日

【入門者・初心者向け】scikit-learn を用いた機械学習入門ハンズオン~回帰モデル編~
https://liberal-arts-beginners.connpass.com/event/140224/


で学んできたことメモ




機械学習
教師あり学習、教師なし学習を行う
ここでは、回帰
・特徴選択が大事
 市場規模(兆円)→対数変換
 →特徴量
 
 線形回帰:多重共線性

→だけど、特徴選択は難しい

フレームワーク
・様々なモデル
 線形回帰
 正則化回帰
 ニューラルネットワーク

モデル:
 値が決まる:パラメータ
 人間が決める:ハイパーパラメータ

評価
 確率モデルは情報量基準、そうでない場合は誤差関数で評価
 訓練データ集合D={(x1,t1),・・・} 入力と正しい出力の組
 モデルy=f(x)

 正しい出力Tn
 モデルの出力f(xn)
 誤差:tn-f(xn)
 +の誤差とーの誤差で打ち消し合わさないように2乗(tn-f(xn))
 2乗和誤差、2乗和誤差の平均で評価
 
訓練データとテストデータに分ける
 train_test_split
  訓練8割 テスト2割が多い
  データが多く少ないデータで学習できるなら
   訓練5000個、テスト 残り
 →ハイパーパラメータ選択
  k-foldクロスバリデーションを各パラメータで実施して、
  一番良い結果を選ぶ

線形回帰
y = w0+w1x1+w2x2+・・・+wnxn
2乗和誤差
→Eをwで微分して、0とおく
→ハイパーパラメータが出てこない

正則化線形回帰
 汎化能力
   解が求まらない:回避するようにできている
   過学習
 →正則化 regularization
  正則化線形回帰:ridge回帰を取り上げる
   →2乗和誤差関数にパラメータの2乗和を加える
    ハイパーパラメータλあり
    λ>0
    もしλ<0だと、誤差関数がマイナスになる可能性がある

ニューラルネットワーク回帰
 作るモデルy=f(x)が複雑
  →複雑なデータでも
 層→重みのところでいう入力→中間層→出力の場合(3層でなく)2層
 活性化関数relu,logistic,tanh
 出力層では活性化関数はない(そのままのあたい)
 誤差関数E+'alpha'/2 - ∑


  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

機械学習手法の分類手法を「人間をゴリラと間違える事例」で使ったらどうなるかで説明してみる

2019-08-19 08:57:23 | AI・BigData
機械学習の分類手法は、こんなかんじ
 決定木:分類基準がわかる。Whitebox
 SVM:くっきりはっきり分かれ目(サポートベクタ)がわかる場合、有力
 ディープラーニング:分かれ目ははっきりしないとき、~っぽいという区別がしたいとき*
 ランダムフォレスト:ディープラーニングでやったものより、精度を上げたいとき
 アンサンブル:(結局組み合わせなので)精度を上げたいとき

*ディープラーニングは分類の理由がはっきりしない(Blackbox)。なので、分類基準がはっきりできない、させたくないときに有効。

このほかに、ABCのどれかを分類したいとき、「Aがどうか」「Bがどうか」「Cがどうか」をロジスティック回帰でやる方法もある。逆に「その線はね~よ」と消したいときや、説明変数が回帰向き(だけど、分類に回帰はふつう使わない)のときいいかも。
回帰向き:説明変数間が独立だが、目的変数に対し、「連続量で」効いて(寄与して)くる




このちがいを「人間をゴリラと間違える事例」で使ったらどうなるかで説明してみる

ディープラーニング:
 過学習させて、この人は、ゴリラに分類されるんだけど、この人だけは、ゴリラの中でも人間と表示するというふうにしてしまう。分類理由(基準)はブラックボックスなので、ゴリラに本当は分類されていることはバレないので、問題なく分類できる。

SVM
 カーネルトリックを使って、この人をゴリラから分離でき、それがほかの人間と一緒というサポートベクタが引けないとできない・・・難しいと思う。

決定木
 理由がわかってしまう。ディープラーニングの方法では、「じつはゴリラに分類されているんだけど」ってことがバレバレになる。激怒され、大問題。

ランダムフォレスト
 データが多くて、ディープラーニングの精度が悪ければあり

アンサンブル
 ディープラーニングの精度が悪ければあり

ロジスティック回帰
 ゴリラかときいて、その可能性が高ければ、激怒される(たとえ、人間の可能性も高く、最終的に人間と分類できたとしても)

  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする