どうやってAIを学習するか?

各学習法を吟味、自分に合った方法で進める。

Chainer チュートリアルへようこそ。

このチュートリアルは、機械学習やディープラーニングの仕組みや使い方を理解したい大学学部生以上の方に向けて書かれたオンライン学習資料です。

機械学習の勉強を進めるために必要な数学の知識から、Python というプログラミング言語を用いたコーディングの基本、機械学習・ディープラーニングの基礎的な理論、画像認識や自然言語処理などに機械学習を応用する方法に至るまで、幅広いトピックを解説しています。

機械学習を学び始めようとすると、ある程度、線形代数や確率統計といった数学の知識から、何らかのプログラミング言語が使えることなどが必要となってきます。 しかし、そういった数学やプログラミングの全てに精通していなければ機械学習について学び始められないかというと、必ずしもそうではありません。

本チュートリアルでは、機械学習やディープラーニングに興味を持った方が、まず必要になる最低限の数学とプログラミングの知識から学び始められるように、資料を充実させています。

そのため、できる限りこのサイト以外の教科書や資料を探さなくても、このサイトだけで機械学習・ディープラーニングに入門できることを目指して、作られています。初学者の方が「何から学び始めればいいのか」と迷うことなく学習を始められることを目指したサイトです。

また、本チュートリアルの特徴として、資料の中に登場するコードが、Google Colaboratory というサービスを利用することでそのままブラウザ上で実行できるようになっているという点があります。

ブラウザだけでコードを書き、実行して、結果を確認することができれば、説明に使われたサンプルコードを実行して結果を確かめるために、手元のコンピュータで環境構築を行う必要がなくなります。

とりあえずkeras

とりあえずkerasの本から始めました。

こいつです。

実装するだけならこんなに簡単なのか!っていうのでモチベ爆上がりしましたね。

この本のおかげで、何に何を入れたら何が出てくるぐらいは理解できました。

つまり、よくわかんないけど作れる。みたいな状態。

この本を(わからないところは飛ばし飛ばし)終えてからtensorflow公式のAIチュートリアルをやってました

あとは微分と積分がなんで重要なのかをちらっと勉強してました。

ただ、東大松尾研究室のDL4USの存在を知ってたそっちを受けてたかも(^^;

動画編

数学は動画で勉強。

TRYの動画授業。

YOUTUBEなので無料だしわかりやすい。

高校生向けになので初心に帰れるのも良い。

微分だけ学びました。

予備校のノリで学ぶシリーズ。

YOUTUBEなので無料。

確率統計、線形代数はここで学んだ。

ボケがおもしろくなくておもしろいので好き。

1.わからないところを理解する。

独学で一番まずいのが、なんかよくわからないからモチベ下がったってやつです。

モチベ下がるのは良くないので、なんでわからないのか、どこがわからないのか、というのを理解して対策を打ちましょう。

ワンもあ言います。「わからない理由を明確化する」、そして「対策を打つ」。

もう一回いいます。「なんで」わからないのか、どこがわからないのか、そして「対策」。

もう一度いいます。「原因」と、「対策」。

わかんなくて叫びだしたくなったら「原因」と「対策」っていうのを思い出してください。

原因を見つけるのは2ステップ。

「どこ」がわからないのか、どこからわからなくなったのかを調べる。

全体像

本講座は全7Lessonの演習マテリアルからなっています。各Lessonは次のような構成になっています。

– Lesson 0: 機械学習・Deep Learningのキソ

  – 機械学習概観

– Lesson 1: 手書き文字認識をしよう

  – Keras入門、MNIST、MLP、前処理、勾配に関するテクニック、過学習に関する手法、Fashion MNIST

– Lesson 2: 畳み込みニューラルネットワーク

  – CNN基礎、Data Augmentation、画像データの正規化、Batch Normalization、Skip Connection

– Lesson 3: 系列データで予測させてみよう

  – RNN、BPTT、Gradient Clipping、LSTM、GRU

– Lesson 4: ニューラル翻訳モデルをつくってみよう

  – 言語モデル、分散表現、Seq2Seq、Keras Functional API、Attention

– Lesson 5: 画像からキャプションを生成してみよう

  – MSCOCO、学習済みモデルの利用、キャプション生成、Attention

– Lesson 6: ニューラルネットに画像を生成させよう

  – 生成モデル入門、GAN、Conditional GAN、VAE

– Lesson 7: ニューラルネットでゲームを攻略するAIをつくろう

  – 強化学習入門、Q学習、DQN、OpenAI Gym、Double DQN、Dueling Network

演習の進め方

各LessonにはそのLessonで学ぶトピックの説明及びPythonでの実装がJupyter Notebook形式でまとめられています。 各Lessonは4つのSectionから構成されている。

(画像はネットより借用、文面もQiitaなどより借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

令和元年年の瀬に当たって

令和最初の年を いかが過ごされたでしょうか

令和元年を終えるに当たって
この一年 新たな時代 新たな文明 新たな社会 を築いていくために
私たち一人一人がそれぞれに出来ることを着実に積み重ねてきたことを
振り返り 確認出来れば幸いです


新たな何かを生み出すためには
まず 新たな心が必要なのかもしれません
私たち一人一人の内に

その新たな心とは
  私たちの内に本来有るものではあって
忘れられ 隠されているもの...
それを「誰もが本心に基づいて選択し行動して良いんだ」
と気付き 実際にそうしていくためには それを再認識し
  新たな決意をすることが必要なのかもしれません


自分(たち)の利益だけを優先させる
そのために
  自分(たち)の「正義」を掲げ それを他人に押し付け
それを盾にし 振りかざして戦み
...それが この一年間の世界での出来事が私たちに示してくれたものでした


自分たちの利益 自分たちの正義 自分たちの...
それらを主張したり 貫こうとした時に
「自分たち」に属さない他人とぶつかり合うのは明白なことで
そして だからこそ
誰もが幸せに生きられないのも明白なことで


もう そういう考え方や行動は過去のものにしましょう
そして 慈しみに満ちた 本来の世界を取り戻しましょう

自分自身と 全ての生命の黄金のハートを 最高に輝かせましょう

自分自身と 全ての生命の素晴らしさを 最高に発揮させましょう

どの生命(存在)をも大切に思える気持ちを思い出し
誰もが 幸せを 歓びを 満ち足りた心を実感出来るように

幸せに生きたいのは 《あなた》 だけではありません

新しい年が 愛と希望に満たされた年でありますように
祈りを込めて

・・・

上の意見はその通りと思いますが、理想主義的すぎます、すべての人(国)が善人とは限りません、もっと現実を見つめて!

皆さま、良いお年を!

下記URLからコピーさせていただきました。

http://www.sathya.be/2001.html

Y.O.さんから頂いた男爵イモで作ったカレーライス、とても美味しかったです。

↑人気ブログランキングに参加しています。ポチっと1票を!

引用

今日は今までに一度も使ったことがない「引用」を使用してみる!
間違ったらごめんなさい。

3−8.引用

役割 … 引用ブロックを挿入する
タグ … <blockquote>

引用	引用ボックスを挿入する

役割 … 引用ブロックを挿入する

タグ … <blockquote>

https://bazubu.com/how-to-use-gutenberg-36143.html

野性の証明カバー

↑人気ブログランキングに参加しています。ポチっと1票を!

複数のブロックを1つにまとめる?

地崎バラ園のバラ
  • 第1のブロックは画像の中を指定。
  • 第2のブロックはこのブロックで段落を指定。
  • これをテキストの範囲を指定する同じ要領で指定
  • どうなるか?

第1のブロックは画像の中を指定。
第2のブロックはこのブロックで段落を指定。
これをテキストの範囲を指定する同じ要領で指定。
どうなるか?

  • 段落1(段落4はインライン画像です)
  • 段落2
  • 段落3
  • 段落4 インライン画像用
  • 段落5
↑人気ブログランキングに参加しています。ポチっと1票を!

再利用可能・保存と呼び出し

再利用可能なカバー画像と人気ブログ・バナーを登録した。

野性の証明カバー

野性の証明カバー

海鮮丼(かに・いくら)
海鮮丼

上の画像はフルサイズを指定

↑人気ブログランキングに参加しています。ポチっと1票を!

拡大鏡について

拡大鏡について

2019/12/27

すばらしいツールをお伝えします(どの場面でやっても通用します)

①	使うキーはキーボード一番左下のキーから右に3つ目Windowsロゴマークが刻印されている「Windows・キー」、そして「+(;)」キー、と「―」キー、と「Esc」キー

②	終了は「Windows・キー」+「Esc」キー
これで元に戻ります。

③	始まりは「Windows・キー」+「+」キー、これで100%ずつ拡大アップ

④	縮小は「Windows・キー」+「―」キー、これで100%ずつ縮小

⑤	画面での移動はポイント(ドラッグではなしに)で行う(マウスをずらすだけ)

⑥	③(始まり)をやると左上方に「拡大鏡パネル」が表示されます

⑦	パネルの「表示▼」をクリックすると
1)	全画面表示
・画面・上・下・左・右・端に近づくとその方向にスクロールします

2)	レンズ
・10㎝×6cmぐらいの虫眼鏡が現れます。ポイントをずらすと移動します

3)	固定
・画面上端5分の1のところに今カーソルがいる部分の拡大表示がされます
が選べます

⑧	一度やってみるとよいと思います

⑨	残念なことは慣れるまで拡大鏡パネルが非常に邪魔なことです
いちいちパネルのタイトルバーをドラッグで邪魔にならないところに移動させなければならないことです

⑩	時としてスタート画面が表示される時がありますが、慌てずその外側でクリックして閉じてください

⑪	虫眼鏡の下でも通常の操作は変わりません(レンズのとき)

※分からなくなったら「Windows・キー」+「Esc」キーで抜けることです
(パネルのクローズボタンをクリックしても良いです)

※「Windows・キー」+「+」キーで拡大しすぎる場合(例えば400%)は拡大鏡パネルの「―」記号をクリックすることによって縮小してください。
「Windows・キー」はシステムがいろいろな目的で使っているので細心の注意をもって扱ってください。
お勧めは「レンズ」モードでパネルを「×」(閉じる)の左の「―」(タスクバーにしまう)でタスクバーにしまっておくとパネルが煩わしくなくなります。
拡大率やモードの切り替えなどはタスクバーにレンズを移動して行います。

(No Highlighting)

↑人気ブログランキングに参加しています。ポチっと1票を!

Python-HTML-CSS with Enlighter in Gutenberg

19/11/26に掲載されたプログラム群をGutenbergとEnlighterを使って再掲します。

#!/usr/bin/python3      # app.py python
# -*- coding: utf-8 -*-
# app.py
 
from flask import Flask, redirect ,request,render_template
 
app = Flask(__name__)
 
@app.route("/check")
def check():
    return render_template('check.html')
 
@app.route('/',methods=['POST'])
def index():
    my_age = int(request.form["age"])
    my_name = request.form["name"]
    return render_template('index.html',age=my_age,name=my_name)
 
if __name__ == '__main__':
    app.run(debug=True)

上のコードはPython programです。

&lt;!DOCTYPE html>      &lt;!-- check.html -->
&lt;html lang="ja">
&lt;head>
    &lt;meta charset="UTF-8">
    &lt;title>年齢確認&lt;/title>
&lt;!--    &lt;link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}" />  -->
    &lt;link rel="stylesheet" type="text/css" href="static/css/style.css" />
&lt;/head>
&lt;body>
 
    &lt;form action="/" method="post">
        &lt;h1>年齢確認&lt;/h1>
        &lt;input type="text" name="name" placeholder="名前" required/>
        &lt;input type="number" name="age" placeholder="年齢" required/>
        &lt;button>年齢確認&lt;/button>
    &lt;/form>
 
&lt;/body>
&lt;/html>

上のプログラムはHTMLです。

&lt;!DOCTYPE html>  &lt;!-- index.html -->
&lt;html lang="ja">
    &lt;head>
        &lt;meta charset="UTF-8">
        &lt;title>18禁のサイト&lt;/title>
&lt;!--        &lt;link rel="stylesheet" type="text/css" href="style.css" />  -->
    &lt;link rel="stylesheet" type="text/css" href="static/css/style-04.css" />
        &lt;!--[if lt IE 9]>
        &lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js">&lt;/script>
        &lt;![endif]-->
    &lt;/head>
    &lt;body>
    &lt;h1>射幸心を煽りまくるホームページ&lt;/h1>
    {% if age >= 18 %}
    {{name}}さんは18歳以上ですね。
    {% else %}
    {{name}}さんみたいな方はこんなHP見ちゃいけません?
    {% endif %}
 
    &lt;/body>
&lt;/html>

上のプログラムもHTMLです。

@charset 'utf-8';
body     {
    background: sandybrown;
    color: darkgreen;
    margin-left: 2m;
    margin-right: 2m;
}

上のコードはstyle.cssです。

@charset 'utf-8';
body     {
    background: violet;
    color: darkgreen;
    margin-left: 2m;
    margin-right: 2m;
}

上のコードはstyle-04.cssです。

文字が小さく見ずらい時はWindows拡大鏡をお使いください。Windows・キー + 「+」(プラス・キー)(Windows・キーはキーボード左下、左から3~4番目のキー。抜けるにはWindows・キー + 「ESCキー」を押します)

↑人気ブログランキングに参加しています。ポチっと1票を!

EnlighterでPython codeを表示

アイキャッチ画像は北大旧交流プラザ(エルムの森)です。

Plugin Enlighter Sourcecodeを初めて使う!

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo32.py sessin managed &amp; username get
from flask import Flask, redirect, request, render_template, url_for, session
 
app = Flask(__name__)
 
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo07.html')
 
@app.route('/program', methods=['GET', 'POST'])
def program():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo03.html')
 
@app.route('/program1', methods=['GET', 'POST'])
def program1():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo04.html')
 
@app.route('/program2', methods=['GET', 'POST'])
def program2():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return render_template('demo05.html')
 
@app.route('/param/&lt;parameter>')
def show_user_profile(parameter):
    if 'username' in session:
        html = render_template('demo07.html',name = str(parameter))        
        return html
    return 'You are not logged in. from param processing'
 
@app.route('/reset', methods=['GET', 'POST'])
def reset():
    session['username'] = 'monkey'
    return render_template('check31.html')
 
@app.route('/')
def func():
    if 'username' in session:
        html = render_template('demo07.html',name = str(session['username']))        
        return html
    return 'You are not logged in'
 
@app.route('/check', methods=['GET', 'POST'])
def check():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('func'))
    return render_template('check31.html')
 
@app.route('/',methods=['POST'])
def index():
 
    if (request.form['attr'] == 'need'):
 
        success = False
        name = request.form["username"]
        passwd = request.form["pass"]
        att1 = request.form['attr']
        my_message = "keyword処理は?"
    else:
        con1 = request.arg.get('_ControlID')
        pg1 = int(request.arg.get('_PageID'))
        act1 = request.arg.get('_ActionID')
        flg1 = request.arg.get('getFlg')
        html = render_template('demo07.html', con = con1, pg = str(pg1), act = act1, flg = flg1)        
        return html
 
    user_data = [{"id":"カリフラワー", "pass":"hanakyabetsu"},{"id":"西行法師", "pass":"masako"},{"id":"monkey", "pass":"kayochan"},{"id":"program1", "pass":"pass1"}]
 
    for i in range(0, 10):
        if user_data[i]["id"] == name:
            if user_data[i]["pass"] == passwd:
                success = True
                session['username'] = name
                return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
            else:
                continue
        else:
            continue
    success = False
    return render_template('demo07.html',suc=success,name=name,pas=passwd,msg=my_message,att=att1)
 
@app.route('/logout')
def logout():
    session.pop('username', None)
    return redirect(url_for('func'))
 
app.secret_key = 'B0Qp89i/2xY F~XHH!jnVVLWX/,%QR'
 
if __name__ == '__main__':
    app.run(debug=True)
  • EnlighterでPython codeを表示
    Code画面の右上
  • 左(+)Open Code in new Window
    新しいWindowが開かれ大きな文字で表示
  • 中(表)Toggle RAW Code
    Line番号の表示/非表示がトグルで
  • 右(E)EnlighterJS Syntax Highlighter
    省略
51行目うす肌色で2行分ハイライトしている
51行目うす肌色で2行分ハイライトしている

51行目うす肌色で2行分ハイライトしている。カーソルをそこへもって行くと、自動的に51行目が2行にわたっている旨ハイライトする。

↑人気ブログランキングに参加しています。ポチっと1票を!

固定ページではHighlight表示する

CodeMirror Blocks1.1.1,Gutenberg7.1.0,WP5.3の組み合わせで固定ページであるが色別表示(SyntaxHighlight)をした。

CodeMirror Blocks1.1.1,Gutenberg7.1.0,WP5.3の組み合わせで固定ページであるが色別表示(SyntaxHighlight)をした。GutenbergでもCodeMirror Blocksのバグでもなかった。この間変化したのは、LIQUID BLOCKSをインストールしただけ。固定ページはメニューの「トップページ」のプルダウンメニューの「CodeMirror Blocks実験」をクリックすると見ることができます。

固定ページでSyntaxHighlightしている様子
固定ページでSyntaxHighlightしている様子(ログアウト後・リドロウして後)

「コンピューター」→「ソフトウェア」 → 「言語」 → 「その他の言語」 → 「Python(Object指向)」でメニューをたどるとSyntaxHighlightされているのが分かる。

上のボタンをクリックするとHighlight表示されたページが見られます。

↑人気ブログランキングに参加しています。ポチっと1票を!