会計とは…
会計について学んでみることにした。
全くのド素人だがどこまで行けるのか…
会計と簿記について
まずはこの画像内で行くと
会計とは、会社の活動を関係者すべてに報告する事を指し、
その中に簿記も含まれている、という。
まぁ、めちゃくちゃ枠が広めってことなんだろう。
んで、簿記はその会計の中でも、
会計データに取引を記入する事、を言うらしい。
会計とファイナンスについて
会計とファイナンスを比べてみて、会計とは何かを理解する。
会計にはこんな特徴がある。
①まずは会社の立場で報告する
②「利益」を扱う
③常に、ある一定期間の「過去」の数字を扱う
らしい…確かに…
また、会計も2種類あるんだってさ。
管理会計…会社内の人の為に数字を報告する 例えば設備投資するべきなのかな??のジャッジに
財務会計…会社外の人の為に数字を報告する 例えば株主さんへの報告とか
一方ファイナンスは…
①投資家の立場で
②「キャッシュ(=今、手元にあるお金)」を取り扱う
③常に未来の事を話す
どこに投資すべきか、やどうやってその投資金を集めるのか?とか、
儲けの配当なんかを扱うときにはファイナンス、っていうんだって。
そして、
企業の活動は3つに分けられる。
①お金を集める財務活動
②投資する投資活動
③投資した者からもうけを上げる営業活動
これらの3つの活動を記録したものが、財務諸表っていうらしい!!
今日はここまででした。
ではまた!
Django環境開発手順
Django 環境構築手順
大前提ーーーーーーーーーーーーーーーーーー
・pythonがインストール済みである
・Djangoもインストール済みである
・vertiualenvもインストール済みである
ーーーーーーーーーーーーーーーーーーーーー
① まずは環境を作りたいところにcd
② 任意でフォルダ名を作成(今回はprojectsとして作成)
③ cd projects
④ virtualenv -p python microblog(ここは任意)
⑤ cd microblog
⑥ cd Scripts
⑦ activate.bat →バーチャルエンブか起動
⑧ cd ..
⑨ django-admin startproject microblog(任意)
\pwd → \micrblog
⑩ cd microblog
⑪ python manage.py startapp blog(任意)
⑫ settings.pyでinstalled_apps に"blog"(任意)を追加
Adminサイトへのアクセス
① admin.pyを開く
② from アプリ名.models import models内で表記したクラス名
③ admin.site.register(クラス名)
④ http://127.0.0.1:8000/adminで確認
⑤ 記事を入れるにはpython manage.py createsuperuser
⑥ 各種設定して終了
1-2 Pytorchのディープラーニング実装の流れ
数学も学んだ。
ディープラーニングの知識についても少しはついた。
いよいよ、
パイトーチによる、ディープラーニングからSSDの学習を始めていく。
まずはアウトプット。
パイトーチの学習の流れ
前処理、後処理、モデルの入出力確認
↓
Datasetの作成
↓
DataLoaderの作成
↓
ネットワークモデルの作成
↓
順伝播の定義
↓
損失関数の定義
↓
最適化関数の定義
↓
学習・検証の実施
↓
テストデータで推論
それぞれ説明するけど、前処理、後処理、入出力はいいだろう。
Datasetについて
イメージはしづらいが、入力するデータとラベルがペア(辞書形式?)になったもの。
学習用、検証用、テスト用とそれぞれのデータを持ってる。
ただ、まさかのそれぞれ1組ずつで返すモジュールらしいっす。
DataLoaderについて
さっき話したDatasetからデータを取り出しやすくする役割のやつ。
ていってもわかりにくい
つまりは1組で返してくるデータをバッチサイズごとに束にして、くれる機能のやつ。
更にそのミニバッチ内でシャッフルしてくれたり、Tensor型にしてくれる。
ネットワークモデルの作成
これはいいよね。
独自モデル?学習済みモデル?学習済みモデルの変更モデル?
順伝播の定義
単純なモデルの場合は前から後ろのレイヤーへって感じだが、
ディープラーニングの場合はそうはいかない。
複雑な順伝播もあるので、しっかりと定義を行う
損失関数の定義(逆伝播)
今までは単純に前から後ろへと伝播させていく流れだったが、
この損失関数の定義によって、
教師データと出力データの誤差(=どれだけ変わったのか?どれだけ勾配があったのか?)を算出する
最適化関数の定義
損失関数で算出された値をもとに各パラメータの値を徐々に小さくしていく関数を定義する
それを学習の目的はそもそも、この損失関数の値を小さくしていくことにあるからだ。
それで、学習をさせていき、
推論、学習、テストを行って、精度を確認する。
過学習が起こっている場合は、精度が一定で止まってしまう。それを止めるのをアーリーストッピングっていうらしい。
条件付き確率
名前の通りだが、条件付き確率について記載する。
久しぶりに、数学で理解できたかも笑
条件付き確率
そのままだが、ある出来事Bが起こる条件の下で別出来事Aが起きる確率のこと。
表し方としては
と表現する。
また、
この条件付き確率を求める式は
このように求められる。
この∩は「キャップ」と呼ばれるものだ。
かなりわかりづらいので、例を出す。
袋の中に黒い球と白い球が5個ずつ入っている。
黒い球には1という数字が3個、0と表記された球が2個入ってて、
白い球には1という数字が2個、0と表記された球が3個入ってる。
ここで球を一つとったら白い球だった。
この白い球が0と表記されている確率はいくらか?
念のため、答えは5分の2になる。
では、また。
相関係数について
今日は相関係数について。
相関係数
相関係数とは共分散と標準偏差を使って-1から1までの間で関係性を示す計算方法。
相関係数 = xyの共分散 / xの標準偏差 × yの標準偏差
で表される。
では復習も兼ねて、共分散と標準偏差の求め方も記載する。
x = [ 50 , 70 , 60 ]
y = [ 20 , 30 , 90 ]
という値を使う。
共分散は、
①まずx、yの平均値を求める。 → x:60 y:46(小数点は切り捨て)
②x、yのそれぞれの値を平均値から引く。 → x:[ -10 , 10 , 0] y:[ -26 , 16 , 44]
③対応するそれぞれの要素を掛け算して、足算 → x*y = [ 260 + 160 + 0 ] → 420
④この420の平均を出す → 140 これが共分散になる。
標準偏差は
①まずx平均値を求める。 → x:60
②xのそれぞれの値を平均値から引く。 → x:[ -10 , 10 , 0]
③それぞれの値を2乗して足算する → x:[ 100 + 100 + 0] : 解は200
④そして、この解のへいきんを算出 → 66.6666666666
⑤そして標準偏差はルートで計算されているので、実数に戻してあげる → x 8.1
⑥yにも同じように求める。 yの標準偏差は [676 + 256 + 1936 ] → 30.9
これで上記の
相関係数 = xyの共分散 / xの標準偏差 × yの標準偏差
の式の数字が出た。
相関係数 = 140 / 8.1 * 30.9 → 0.5593… になる。
このように相関係数は
- 1 ~ 1 の間で推移して、今回だと正の数に倒れたので、
xが大きくなったらyも大きくなる、っていう指標になる。
0は全く関係ない。
マイナスはxが大きくなったらyは小さくなり、その逆も然り、って話だ。
では、また。
共分散について
最近はめっぽう数学にはまっている。
もう少ししたら、パイトーチのSSDに進むが、
なにぶん、ここまで数学を全くやってこなかったので、
年末年始の休みでいっきに数学の基礎を知ろうとしている段階だ。
あぁ、早くコード書きたい笑
共分散
聞きなれない言葉だが、
共分散とは、2組のデータの関係性を表現する数値のこと。
あまり初めはぴんと来なかったが、例を出すと理解が深まった。
では、どうやって求めるのか?
初めにテキストで書いておく、
①まずは、それぞれ数値のへいきんをとる。
②それぞれの数値を平均点と引き算し、それぞれ対応する数値をかける
③かけたものを全て足算して、最後にまた平均値をとる
この結果が
正:Xは大きい場合、Yも大きく、XがちいさければYも小さい
0ないし0に近い:XとYはあまり関係がない
負:Xが大きかったらYが小さく、Xが小さかったら、Yが大きい傾向にある
では、例を出す。
国語の点数(X)と数学の点数(Y)がそれぞれ下記の通りだったとしよう。
X=50、70、40、60、80
Y=60、80、50、50、70
そうすると結果が正の数値であったため、Xが大きければ、Yも大きく、
Xが小さければ、Yも小さくなる、という傾向にあることが分かった。
import numpy as np import matplotlib.pyplot as plt x = np.array([50, 70, 40, 60, 80]) # 数学の点数 y = np.array([60, 80, 50, 50, 70]) # 英語の点数 z = np.array([60, 40, 60, 40, 30]) # 国語の点数 cov_xy = np.average((x-np.average(x))*(y-np.average(y))) print("cov_xy", cov_xy) cov_xz = np.average((x-np.average(x))*(z-np.average(z))) print("cov_xz", cov_xz) plt.scatter(x, y, marker="*", label="xy") plt.scatter(x, z, marker="+", label="xz") plt.legend() plt.show()
正規分布(ガウス分布)
今日もアウトプット。
今回は、正規分布というグラフの説明。
こちらをまずはチェック。
これが正規分布といって、平均(μ)を真ん中にとって、σの幅を標準偏差(前にやった分散)を表している。
自然界では、正規分布になるといわれているぐらい有名なグラフらしい。。。
で、Numpyには、この正規分布に即した数字の乱数を発生させる関数があるらしい。
それが、
np.random.normal()関数である。名前にNormalついてるので、イメージはつきやすいか…
import numpy as np import matplotlib.pyplot as plt # 平均0、標準偏差1、1000個 x = np.random.normal(0,1,1000000) # ヒストグラム #棒の数 plt.hist(x, bins=1000) plt.show()
コード内で言う平均0は平均が真ん中にくるように、って意味で、
標準偏差はそれぞれのばらつきが1になるようにって意味らしい。
これが出力結果。
ではまた。