2018年7月26日木曜日

ディープラーニングを体感しよう:第4章(ディープラーニングとは?)



お久しぶりです。よっしーです。


これまでの記事:
ディープラーニングを体感しよう:第1章(まずは環境構築)
ディープラーニングを体感しよう:第2章(Python環境を構築する)
ディープラーニングを体感しよう:第3章(プログラムを動かしてみよう)


前回から少し時間が空いてしまいました。

本業が忙しく、記事をまとめる時間がなかなか取れませんでしたが、

今週からは投稿復帰しますので、またまたよろしくお願いします。


前回は、実際にプログラムを動かし、内容を表示するところを見ました。

今回は、そもそもディープラーニングってどんなものなのだろう?

という内容を記載して行きたいと思います。


最近「機械学習」という単語を良く聞くかと思います。

機械学習:
 人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能を
 コンピュータで実現しようとする技術・手法のこと

ディープラーニングというのはこの機械学習の中の1つにあたりますが、

機械学習にもいろいろと分類があり、

私が理解している内容は以下となります。


「機械学習」の1つとして「教師あり学習」がある



教師あり学習:
 機械学習のアルゴリズムの1つ。事前に例題と答えのデータを与えておき、
 それを元に学習し、答えを導く手法。


「教師あり学習」の技法の1つとして「ニューラルネットワーク」がある



ニューラルネットワーク:
 機械学習の技法の1つ。脳機能に見られるいくつかの特性を計算機上のシミュレーションによって
 表現することを目指した数学モデル。


「ニューラルネットワーク」を利用した機械学習手法として「ディープラーニング」がある



ディープラーニング:
 多層にニューラルネットワークを重ねて特徴を捉え、答えを導き出す機会学習の技術、手法。


ウィキペディアなどを見ても、専門用語が多く、なかなか理解しにくにので、
素人なりに、機械学習から掘り下げて、まとめてみました。

今日はこのあたりで。ではまた~。

2018年7月20日金曜日

IBM Cloud上でFlaskを使用してWebAPIを作る(後編)

前回、JSONデータをやり取りするWeb APIを作成しましたが、{"user":"太郎"}のように日本語を指定するとエラーが発生します。
ログを確認すると、


user = str(request.json['user'])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)


というエラーが出力されていました。

ググってみると「str文字列」だの「unicode文字列」だの・・・
ん?それってPython2の話ですよね?

もしやと思い、Pythonのバージョンを出力して確認してみると、やはりPython2.x系でした。


import sys
print('{}.{}.{}'.format(sys.version_info.major, sys.version_info.minor, sys.version_info.micro))


> 2.7.13


runtime.txtというファイルを新しく作成し、そこに

python-3.6.2

と記述してバージョンアップすると、エラーなく日本語も扱えるようになりました。

またいつか、どこかで。

2018年7月13日金曜日

IBM Cloud上でFlaskを使用してWebAPIを作る(前編)

IBM Cloud上でFlaskを使用し、JSONデータをやり取りするWeb APIを作成しています。
その方法をメモ。

Starter Kitsの中から「Python Flask」を選択し、アプリケーションを作成します。


























作成したアプリのソースをダウンロードします。

PythonもFlaskも未経験ですが、いろいろ調べながら下記のようなコードを作成しました。
受け取ったデータを結果とともにそのまま返すだけです。


from flask import Flask, jsonify, request

@app.route('/api/sample', methods = ['POST'])
def Sample():
    if request.is_json:
        if 'user' not in request.json:
            user = ''
        else:
            user = str(request.json['user'])
        return jsonify({'status':'success', 'user':user})
    else:
        return jsonify({'status':'error'})


{"user":"Taro"}というデータを送信したところ、内部エラーが発生しました。

FlaskのAPIドキュメントの「is_json」の項には「New in version 0.11.」と記載されています。
requirements.txtは「Flask==0.10.1」と記載されており、どうやらFlaskのバージョンが古いことが原因のようです。

「Flask==1.0.2」と書き換え、現時点の最新版にバージョンアップすると、{"status":"success","user":"Taro"}という結果が返ってくるようになりました。

またいつか、どこかで。

2018年7月6日金曜日

申請用総合ソフトを使って登記申請してみた!

今年の株主総会で取締役の任期満了を迎え、その場で選任が決議され、取締役重任と相成りました。
重任でも法務局に変更登記が必要です。調べてみるとオンライン申請できるようなのでチャレンジしてみました。


申請するには


以前、社会保険関係はe-Govから、納税証明書取得時はe-Taxから申請しましたが、法人登記はまた別のシステムを利用することになります。それが

「登記・供託オンライン申請システム(登記ねっと・供託ねっと)」

です。
ただし、登記事項証明書の交付請求などはサイトからできますが、今回行う法人登記申請など大半の手続きは「申請用総合ソフト」というソフトを利用しなければなりません。


準備


まず、「申請用総合ソフト」を「登記・供託オンライン申請システム」からダウンロードしてインストールします。
インストールでは特につまずくことはありませんが、あとで参考にするので、インストール手順が記載されている「かんたん事前準備ガイド」という操作手引書はダウンロードしておきましょう。

「申請用総合ソフト」を起動してみましょう。


そうです。このソフトは申請者登録しないと使えません。
「かんたん事前準備ガイド」の「申請者情報の登録」にしたがい、サイトでユーザー登録しましょう。

ユーザー登録が完了したら、ソフトを起動し、「かんたん事前準備ガイド」の「ICカードの切替設定」にしたがって、ICカード情報を登録したら準備完了です。


いざ申請!


申請用総合ソフトのメイン画面です。





























サイトには主な手続きごとに操作手引書が用意されています。
今回は「株式会社の役員変更の登記(全員重任)申請」を参考に、

  1. 申請書に情報入力
  2. 株主総会議事録・株主リストを添付
  3. マイナンバーカードで電子署名

といった手順を経て、申請情報を送信しました。

登録免許税は電子納付可能で、インターネットバンキングから初めてペイジーを使って納付しました。
すべてオンラインで完結するなんて素敵!・・・と思っていました、この時は。


ところが



処理状況は申請用総合ソフトで確認できるのですが、何日経ってもステータスが更新されません。
ちょうど一週間ほど経ったころ、法務局から電話がありました。

「議事録等は郵送してもらえましたか?」

添付した書類の原本が必要とのことでした。
オンラインで申請するメリットがないなあ、と思いながら、法務局へ書類を持参しました。


さらに


しばらくして、また法務局から電話がかかってきました。

「マイナンバーカードでは電子署名として認められません。」

どうやら「法人認証カード」というものでないといけないようです。
見逃していただけかもしれませんが、そのあたりもマニュアルに分かりやすく書いておいてくれたらいいのですけどね。

結局、申請を取り下げ、再度書面で申請することになりました。
申請は申請用総合ソフトで取り下げることができます。その際にも電子署名が必要で、それはマイナンバーカードでもいいそうです。(そこはええんかいっ!)


扱う情報の重要性もあり、完全なオンライン化が難しいのかもしれませんが、窓口での対応も含めて、旧態依然としてるなあと感じました。

またいつか、どこかで。