ちびのはてな

「ちび(猫)」と「キノコ」から生まれた「ちびキノコ」。ドラゴンボール最強!純粋なサイヤ人のように生きたいと思っているモノ作りを楽しむ人です。IT技術で少しでも多くの人が笑顔になってくれたらいいなと。

SSGはスーパーサイヤ人ゴッドの略ではない

Rendering mode Deployment target Mode 備考
Universal Server SSR
Universal Static SSG
SPA Server SPA dist が勝手にできてた
SPA Static SPA generate が必要だった

Universal x Server (SSR)

yarn build

$ yarn build
yarn run v1.22.10
$ nuxt build
ℹ Production build                                                                                  23:30:00
ℹ Bundling for server and client side                                                               23:30:00
ℹ Target: server                                                                                    23:30:00
ℹ Using components loader to optimize imports                                                       23:30:00
ℹ Discovered Components: .nuxt/components/readme.md                                                 23:30:00
✔ Builder initialized                                                                               23:30:00
✔ Nuxt files generated                                                                              23:30:00

✔ Client
  Compiled successfully in 57.24s

✔ Server
  Compiled successfully in 9.05s


Hash: b37f16624616d5ea0e33
Version: webpack 4.46.0
Time: 57253ms
Built at: 2021/07/15 23:31:02
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.4 KiB          [emitted]                     
                    0c17bb7.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
                    12066e4.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    16a8a54.js    211 KiB       1  [emitted] [immutable]         commons/app
                    6e80df1.js    658 KiB       8  [emitted] [immutable]  [big]  vendors/app
                    8198d91.js   50.7 KiB       0  [emitted] [immutable]         app
                    9a04a2f.js  837 bytes       2  [emitted] [immutable]         components/card
                      LICENSES  407 bytes          [emitted]                     
                    a16ac7b.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    afe68de.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    c6fe9ab.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 2 hidden assets
Entrypoint app = a16ac7b.js 16a8a54.js 6e80df1.js 8198d91.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  6e80df1.js (658 KiB)

Hash: 2f88b2148fe88bdcebe3
Version: webpack 4.46.0
Time: 9058ms
Built at: 2021/07/15 23:31:11
                  Asset       Size  Chunks             Chunk Names
     components/card.js   2.47 KiB       1  [emitted]  components/card
components/nuxt-logo.js   5.89 KiB       2  [emitted]  components/nuxt-logo
 components/tutorial.js   7.13 KiB       3  [emitted]  components/tutorial
         pages/index.js   5.31 KiB    4, 1  [emitted]  pages/index
       pages/inspire.js   1.53 KiB       5  [emitted]  pages/inspire
              server.js    475 KiB       0  [emitted]  app
   server.manifest.json  635 bytes          [emitted]  
 + 6 hidden assets
Entrypoint app = server.js server.js.map
ℹ Ready to run nuxt start                                                                           23:31:11
Done in 76.31s.

yarn start

 yarn start
yarn run v1.22.10
$ nuxt start

   ╭──────────────────────────────────────────╮
   │                                          │
   │   Nuxt @ v2.15.7                         │
   │                                          │
   │   ▸ Environment: production              │
   │   ▸ Rendering:   server-side             │
   │   ▸ Target:      server                  │
   │                                          │
   │   Memory usage: 20.9 MB (RSS: 91.5 MB)   │
   │                                          │
   │   Listening: http://localhost:3000/      │
   │                                          │
   ╰──────────────────────────────────────────╯

Universal x Static (SSG)

yarn build

$ yarn build
yarn run v1.22.10
$ nuxt build
ℹ Production build                                                                                  23:36:06
ℹ Bundling for server and client side                                                               23:36:06
ℹ Target: static                                                                                    23:36:06
ℹ Using components loader to optimize imports                                                       23:36:06
ℹ Discovered Components: .nuxt/components/readme.md                                                 23:36:06
✔ Builder initialized                                                                               23:36:06
✔ Nuxt files generated                                                                              23:36:06

✔ Client
  Compiled successfully in 1.02m

✔ Server
  Compiled successfully in 10.26s


Hash: 3f3db012d24c48157286
Version: webpack 4.46.0
Time: 61190ms
Built at: 2021/07/15 23:37:13
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.5 KiB          [emitted]                     
                    006c345.js  837 bytes       2  [emitted] [immutable]         components/card
                    00def6b.js   55.3 KiB       0  [emitted] [immutable]         app
                    35f6586.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    4f835b4.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
                    59b0e20.js    212 KiB       1  [emitted] [immutable]         commons/app
                    60d1fb0.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
                      LICENSES  407 bytes          [emitted]                     
                    a4e72ff.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    e8553bd.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    fdb07ed.js    658 KiB       8  [emitted] [immutable]  [big]  vendors/app
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 2 hidden assets
Entrypoint app = e8553bd.js 59b0e20.js fdb07ed.js 00def6b.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  fdb07ed.js (658 KiB)

Hash: c551ba6b7cf582adcf68
Version: webpack 4.46.0
Time: 10266ms
Built at: 2021/07/15 23:37:23
                  Asset       Size  Chunks             Chunk Names
     components/card.js   2.47 KiB       1  [emitted]  components/card
components/nuxt-logo.js   5.89 KiB       2  [emitted]  components/nuxt-logo
 components/tutorial.js   7.13 KiB       3  [emitted]  components/tutorial
         pages/index.js   5.31 KiB    4, 1  [emitted]  pages/index
       pages/inspire.js   1.53 KiB       5  [emitted]  pages/inspire
              server.js    477 KiB       0  [emitted]  app
   server.manifest.json  635 bytes          [emitted]  
 + 6 hidden assets
Entrypoint app = server.js server.js.map
ℹ Ready to run nuxt generate                                                                        23:37:23
Done in 81.97s.

yarn generate

$ yarn generate
yarn run v1.22.10
$ nuxt generate
ℹ Production build                                                                                  23:37:43
ℹ Bundling for server and client side                                                               23:37:43
ℹ Target: static                                                                                    23:37:43
ℹ Using components loader to optimize imports                                                       23:37:43
ℹ Discovered Components: node_modules/.cache/nuxt/components/readme.md                              23:37:43
✔ Builder initialized                                                                               23:37:43
✔ Nuxt files generated                                                                              23:37:43

✔ Client
  Compiled successfully in 56.50s

✔ Server
  Compiled successfully in 9.12s


Hash: bca66b6c8cfee87710b5
Version: webpack 4.46.0
Time: 56504ms
Built at: 2021/07/15 23:38:43
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.2 KiB          [emitted]                     
                    0c17bb7.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
                    1a04b20.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    4b79b95.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    9a04a2f.js  837 bytes       2  [emitted] [immutable]         components/card
                    9eebd6b.js   1.43 KiB       0  [emitted] [immutable]         app
                      LICENSES  407 bytes          [emitted]                     
                    ada281b.js    212 KiB       1  [emitted] [immutable]         commons/app
                    afe68de.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    c6fe9ab.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
                    cf3ca1e.js    712 KiB       8  [emitted] [immutable]  [big]  vendors/app
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 2 hidden assets
Entrypoint app = 4b79b95.js ada281b.js cf3ca1e.js 9eebd6b.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  cf3ca1e.js (712 KiB)

Hash: 9638647218958335d52c
Version: webpack 4.46.0
Time: 9126ms
Built at: 2021/07/15 23:38:52
                  Asset       Size  Chunks             Chunk Names
     components/card.js   2.47 KiB       1  [emitted]  components/card
components/nuxt-logo.js   5.89 KiB       2  [emitted]  components/nuxt-logo
 components/tutorial.js   7.13 KiB       3  [emitted]  components/tutorial
         pages/index.js   5.31 KiB    4, 1  [emitted]  pages/index
       pages/inspire.js   1.53 KiB       5  [emitted]  pages/inspire
              server.js    477 KiB       0  [emitted]  app
   server.manifest.json  635 bytes          [emitted]  
 + 6 hidden assets
Entrypoint app = server.js server.js.map
ℹ Full static generation activated                                                                  23:38:52
ℹ Generating output directory: dist/                                                                23:38:52
ℹ Generating pages with full static mode                                                            23:38:52
✔ Generated route "/"                                                                               23:39:00
✔ Generated route "/inspire"                                                                        23:39:00
✔ Client-side fallback created: 200.html                                                            23:39:00
✔ Static manifest generated                                                                         23:39:00
Done in 80.28s.

yarn start

$ yarn start
yarn run v1.22.10
$ nuxt start

   ╭───────────────────────────────────────╮
   │                                       │
   │   Nuxt @ v2.15.7                      │
   │                                       │
   │   ▸ Environment: production           │
   │   ▸ Rendering:   server-side          │
   │   ▸ Target:      static               │
   │                                       │
   │   Listening: http://localhost:3000/   │
   │                                       │
   ╰───────────────────────────────────────╯

ℹ Serving static application from dist/           

SPA x Server (SPA)

yarn build

$ yarn build
yarn run v1.22.10
$ nuxt build
ℹ Production build                                                                                  23:43:43
ℹ Bundling only for client side                                                                     23:43:43
ℹ Target: static                                                                                    23:43:43
ℹ Using components loader to optimize imports                                                       23:43:43
ℹ Discovered Components: .nuxt/components/readme.md                                                 23:43:43
✔ Builder initialized                                                                               23:43:43
✔ Nuxt files generated                                                                              23:43:43

✔ Client
  Compiled successfully in 57.91s


Hash: e9f60385377726b98d03
Version: webpack 4.46.0
Time: 57923ms
Built at: 2021/07/15 23:44:46
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.4 KiB          [emitted]                     
                    0c17bb7.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
                    16a8a54.js    211 KiB       1  [emitted] [immutable]         commons/app
                    419ce19.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    6788b58.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    6e80df1.js    658 KiB       8  [emitted] [immutable]  [big]  vendors/app
                    9a04a2f.js  837 bytes       2  [emitted] [immutable]         components/card
                      LICENSES  407 bytes          [emitted]                     
                    afe68de.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    c6fe9ab.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
                    ec8f01b.js   50.9 KiB       0  [emitted] [immutable]         app
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 1 hidden asset
Entrypoint app = 419ce19.js 16a8a54.js 6e80df1.js ec8f01b.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  6e80df1.js (658 KiB)
ℹ Generating output directory: dist/                                                                23:44:46
ℹ Generating pages                                                                                  23:44:46
✔ Generated route "/inspire"                                                                        23:44:46
✔ Generated route "/"                                                                               23:44:46
✔ Client-side fallback created: 200.html                                                            23:44:46
Done in 68.09s.

yarn start

$ yarn start
yarn run v1.22.10
$ nuxt start

   ╭──────────────────────────────────────────╮
   │                                          │
   │   Nuxt @ v2.15.7                         │
   │                                          │
   │   ▸ Environment: production              │
   │   ▸ Rendering:   client-side             │
   │   ▸ Target:      server                  │
   │                                          │
   │   Memory usage: 18.6 MB (RSS: 89.5 MB)   │
   │                                          │
   │   Listening: http://localhost:3000/      │
   │                                          │
   ╰──────────────────────────────────────────╯

SPA x Static (SPA)

yarn build

$ yarn build
yarn run v1.22.10
$ nuxt build
ℹ Production build                                                                                  23:49:47
ℹ Bundling only for client side                                                                     23:49:47
ℹ Target: static                                                                                    23:49:47
ℹ Using components loader to optimize imports                                                       23:49:47
ℹ Discovered Components: .nuxt/components/readme.md                                                 23:49:47
✔ Builder initialized                                                                               23:49:47
✔ Nuxt files generated                                                                              23:49:47

✔ Client
  Compiled successfully in 58.49s


Hash: 0fcb3a0c397c8b4f5fa3
Version: webpack 4.46.0
Time: 58503ms
Built at: 2021/07/15 23:50:50
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.3 KiB          [emitted]                     
                    0b35f6f.js   50.9 KiB       0  [emitted] [immutable]         app
                    0c17bb7.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
                    16a8a54.js    211 KiB       1  [emitted] [immutable]         commons/app
                    1c4bd71.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    3e46965.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    6e80df1.js    658 KiB       8  [emitted] [immutable]  [big]  vendors/app
                    9a04a2f.js  837 bytes       2  [emitted] [immutable]         components/card
                      LICENSES  407 bytes          [emitted]                     
                    afe68de.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    c6fe9ab.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 1 hidden asset
Entrypoint app = 1c4bd71.js 16a8a54.js 6e80df1.js 0b35f6f.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  6e80df1.js (658 KiB)
ℹ Ready to run nuxt generate                                                                        23:50:50
Done in 68.30s.

yarn generate

$ yarn generate
yarn run v1.22.10
$ nuxt generate
ℹ Production build                                                                                  23:51:07
ℹ Bundling only for client side                                                                     23:51:07
ℹ Target: static                                                                                    23:51:07
ℹ Using components loader to optimize imports                                                       23:51:07
ℹ Discovered Components: node_modules/.cache/nuxt/components/readme.md                              23:51:07
✔ Builder initialized                                                                               23:51:07
✔ Nuxt files generated                                                                              23:51:07

✔ Client
  Compiled successfully in 57.22s


Hash: 06e482193e457b4594c4
Version: webpack 4.46.0
Time: 57241ms
Built at: 2021/07/15 23:52:07
                         Asset       Size  Chunks                                Chunk Names
../server/client.manifest.json   12.1 KiB          [emitted]                     
                    0f3fc8d.js   1.43 KiB       0  [emitted] [immutable]         app
                    349f70d.js    211 KiB       1  [emitted] [immutable]         commons/app
                    5eca4d1.js    708 KiB       8  [emitted] [immutable]  [big]  vendors/app
                      LICENSES  407 bytes          [emitted]                     
                    afbdee5.js   1.85 KiB       3  [emitted] [immutable]         components/nuxt-logo
                    c4296a4.js   2.34 KiB       7  [emitted] [immutable]         runtime
                    cc38122.js  697 bytes       6  [emitted] [immutable]         pages/inspire
                    cfb3248.js  837 bytes       2  [emitted] [immutable]         components/card
                    f3ade40.js   1.93 KiB    5, 2  [emitted] [immutable]         pages/index
                    f3b4173.js   6.58 KiB       4  [emitted] [immutable]         components/tutorial
         img/buefy.4761382.png   10.7 KiB          [emitted] [immutable]         
 + 1 hidden asset
Entrypoint app = c4296a4.js 349f70d.js 5eca4d1.js 0f3fc8d.js

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  5eca4d1.js (708 KiB)
ℹ Generating output directory: dist/                                                                23:52:07
ℹ Generating pages                                                                                  23:52:07
✔ Generated route "/inspire"                                                                        23:52:08
✔ Generated route "/"                                                                               23:52:08
✔ Client-side fallback created: 200.html                                                            23:52:08
Done in 63.98s.

yarn start

$ yarn start
yarn run v1.22.10
$ nuxt start

   ╭───────────────────────────────────────╮
   │                                       │
   │   Nuxt @ v2.15.7                      │
   │                                       │
   │   ▸ Environment: production           │
   │   ▸ Rendering:   client-side          │
   │   ▸ Target:      static               │
   │                                       │
   │   Listening: http://localhost:3000/   │
   │                                       │
   ╰───────────────────────────────────────╯

ℹ Serving static application from dist/                                                             23:52:18

勉強会参加メモ:Front-End Study 3「『当たり前』をつくりだすWebアクセシビリティ」

f:id:chibi929:20210716222128p:plain
Front-End Study #3 メモ

PlantUML Raw Data

@startmindmap 210113_FEStudy
title "Front-End Study #3「『当たり前』をつくりだすWebアクセシビリティ」"

+ FEStudy#3
++ Webエンジニアとしていま知っておきたいWebアクセシビリティ@ymrl 氏
+++ アクセシビリティとは
++++ ユーザービリティ: 特定の状況で、特定のユーザーにとって使いやすいこと
++++ アクセシビリティ: あらゆる状況で、あらゆるユーザーにとって使いやすいこと
++++ よくある誤解
+++++ 高齢者・障がい者のためのもの
+++++ 一般ユーザーは関係ない
++++ 減点法で捉えられがち
+++++ やってないと怒られる
+++++ 完璧にしないといけない
++++ 加点法で捉えよう
+++++ やることですべてのユーザーを幸せにする可能性があるもの
+++++ やればやるほど品質が上がるもの
+++ キーワード
++++ WCAG (Web Contents Accessibility Guidelines)
+++++ A, AA, AAA と難易度がある。AAAを全て網羅するのは不可能
+++++ https://waic.jp/docs/WCAG21/
+++++ https://waic.jp/docs/WCAG21/Understanding/
++++++ 解説書も一緒に読んだほうがいい
++++ WAI-ARIA
+++++ どんな UI なのかを伝える HTML 属性
+++++ aria-label, aria-modal などなど
+++++ WAI-ARIA Authoring Practice
++++++ https://waic.jp/docs/2019/NOTE-wai-aria-practices-1.1-20190207/
++++ 組織独自のガイドライン
+++++ Ameba: https://openameba.github.io/a11y-guidelines/
+++++ freee: https://a11y-guidelines.freee.co.jp/
++++ 検証ツール
+++++ aXe
++++++ 定番ツール
+++++ Lighthouse
++++++ Chrome に搭載されている
+++++ eslint-plugin-jsx-a11y, eslint-plugin-vue-a11y
++++++ React や Vue ならコレ
+++++ Visible, acot
++++++ 新しく出てきたツール
++++ 法的な制約
+++++ 欧米ではWebアクセシビリティに取り組むのは義務である
+++ 資料
++++ https://docs.google.com/presentation/d/1uhCvhh6sZCPUnReSBVDjvGfNAOTKbZ5Sxs8fYMlxMsI/edit
++++ https://zenn.dev/ymrl/articles/7f41ad2f39f714
-- これからもつづけるWebアクセシビリティ@yamanoku 氏
--- チェックしてみる
---- Lighthouse
---- aXe
---- WCAG の達成基準でチェック
----- とりあえずレベルAを目指そう
---- 企業ガイドライン
----- Abema, freee, 三井住友銀行
--- 対応してみる
---- 健全なマークアップ
---- WAI-ARIA
---- 静的解析ツール
----- React: eslint-plugin-jsx-a11y
----- Vue: eslint-plugin-vue-a11y, eslint-plugin-vuejs-plugin-accessibility
------ 後者が最新らしい
----- Angular: codelyzer
----- ESLint にルール追加が難しい場合はローカルだけで実行するだけでも良い
------ ルール追加しちゃうとエラーだらけだからね
------ 途中から Linter 追加は地獄
----- @storybook/addon-a11y
------ Storybook: UI 開発環境
--- 資料
---- https://docs.google.com/presentation/d/1bWjpa1WwL-gQT7misOvC0TOKersl-m2pyE-LIP-kWbk/edit
-- 実践!Reactで学ぶアクセシビリティ@五十嵐涼 氏
--- キーワード
---- VoiceOver
---- 区分化要素
---- WAI-ARIA Authoring Practice
----- ダイアログの例とかパンくずの例とか載ってるよ
---- testing-library/react
----- Vue 版もあるよ
------ testing-library/vie
---- getByRole
--- Next.js は _document.tsx を作らないと言語設定できない
--- alt属性付けようね
--- アイコンボタンには aria-label 付けようね
--- SPA で動的にページが切り替わったときにフォーカス変えてあげようね
--- tabIndex はインタラクティブな要素はデフォルトでフォーカスが当たる
--- モーダルダイアログの後ろにフォーカスが行ってしまう
---- フォーカストラップ案件
----- aria-modal
----- role="dialog"
----- open なときに ref を focus を当てる
---- モーダルを閉じたときにフォーカスが飛ぶ
----- onClose な処理なときに ref で focus を当てる
---- 健全なマークアップはテストを書くときにも重要
--- 資料
---- https://github.com/neet/accessible-react-101
---- https://zenn.dev/neet/articles/8b4d8d42fb2a5e

@endmindmap

キノクエの構成要素メモ

f:id:chibi929:20201006233334p:plain
エバーランドの構成要素

PlantUML Raw Data

@startmindmap everland_mindmap
title エバーランドの構成要素

* Everland Online
** Nuxt.js
*** .prettierrc を変更して Linter FIX
*** Class API 導入
**** vue-property-decorator
**** vue-class-component
*** SCSS 導入 
**** sass-loader
**** node-sass
** Video.js を導入
** Firebase を導入
*** on, once, value, child_added
** Konva.js を導入
*** 32x32を200x200のマップを作るとメッチャ重い
**** 必要範囲のマップのみを作ることで解消
** SpriteSheet
*** オーディオも Sprite 化できることを知った
-- window.beforeunload
--- スマホはあまり飛んでこない
--- ブラウザKILLとかだと飛んでこない
-- MediaElement
--- click, touch event じゃないと反応しない
--- 先にロードすると良い
--- 複数ロードすると動かなくなる
-- ダブルタップなどの拡縮の全てを封じることができない

@endmindmap

【メモ】知的財産について

これは、G検定のための個人的なメモである.
内容はとても薄い.

データやモデルに対する特許権著作権・営業秘密(不正競争防止法)・一般不法行為についてまとめる. 公式テキストの表を写すだけ.


特許権 著作権 営業秘密
(不正競争防止法)
一般不法行為
データ × (情報の単なる掲示に該当するため, 発明成立性を満たさない) △ (著作物性が認められる場合は保護されるが, 生データそれ自体は通常創作性が認められない) ○ ( 秘密管理性 , 有用性 , 非公知性 の3要件を満たす場合) × (損害賠償請求は可能)
学習用データセット × (情報の単なる掲示に該当するため, 発明成立性を満たさない) ○ (情報の選択または体系的な構成によって創作性を有するものは データベースの著作物 として認められる) ○ (上記3要件を満たす場合) × (損害賠償請求は可能)
学習 ○ (特許法上の プログラム等 に該当する場合にコンピューターソフトウェア関連発明として保護される) ○ (プログラムそのものを保護, リバースエンジニアリングは NG) ○(上記3要件を満たす場合, リバースエンジニアリングは NG) × (損害賠償請求は可能)
学習済みモデル △ ( プログラムに準ずるもの に該当する場合は認められるが, 関数自体行列自体 には発明成立性が認められない) △ (学習済みモデルが データベースの著作物プログラム著作物 として認められるかは不透明) × (損害賠償請求は可能)
利用 ○ (アプリ等はコンピューターソフトウェア関連として認められる) ○ (著作権性が認められる場合) ○(上記3要件を満たす場合, リバースエンジニアリングは NG) × (損害賠償請求は可能)

まとめ

プログラムは財産

【メモ】欠損値について

これは、G検定のための個人的なメモである.
内容はとても薄い.

急に 回帰補完 , リストワイズ法 といったワードが登場し、
わからなかったのでまとめることにした

参考記事*1

参考記事を見れば全部書いてあるわけだが、自分の言葉でまとめるのも大事。
ってことで、全く同じになりかねないが、まとめていく


欠損値が発生する理由

  1. MCAR*2 : 完全にランダムな欠損
  2. MAR*3 : 測定されている値に依存して欠損している (欠損データとは無関係)
  3. MNAR*4 : 欠損データに依存して欠損している

欠損値への対処の手法

手法 説明 メモ
リストワイズ法 欠損値のあるサンプルを除外する
ペアワイズ法(オールペア法ともいう) 相関係数や分散を算出し, 2変数のどちらかに欠損値のあるサンプルを除外する
平均値代入法 欠損値の箇所に、欠損値を含まないデータから計算した平均値を補完する
回帰代入法(コールドデック法ともいう) 欠損値の箇所に、別途作ったモデルを利用して算出した値を補完する 目的変数に影響しそうな変数を説明変数として回帰分析を行うモデルを作る
確率的回帰代入法 回帰代入法により推定した値に誤差をランダムに加えて補完する
完全情報最尤推定法: FIML*5 欠損値パターンに応じた個別の尤度関数を仮定した最尤推定法により補完
多重代入法: MIM*6 欠損値を代入したデータセットを複数作成し、その結果を統合することで欠損値データの統計的推測により補完

まとめ

いつ登場するんだ?欠損値。回帰分析とかかな?
あと、 ステップワイズ法 という似た言葉が出てきたが、これは回帰モデルを作る手法であって欠損値対処の手法ではなさそう?

*1:https://jojoshin.hatenablog.com/entry/2017/02/03/220118

*2:MCAR: Missing Completely at random

*3:MAR: Missing at random

*4:MNAR: Missing not at random

*5:FIML: Full Information Maximum Likelihood method

*6:MIM: Multiple Imputation Method

【メモ】○○関数について

これは、G検定のための個人的なメモである.
内容はとても薄い.

損失関数、誤差関数、コスト関数、目的関数 の違いがわからない件

参考記事*1
参考記事*2


損失関数 == 誤差関数

参考記事によると、 損失関数誤差関数 はほぼ同義である。
もしくは 損失関数 ⊃ 誤差関数 っぽい。 ( 誤差関数損失関数 の部分集合)

損失関数(≒誤差関数) は、以前にも記事にしている。

chibi929.hatenablog.com

この自分の記事や前述の記事によると、

  • 平均二乗誤差関数: 回帰問題の誤差関数
  • 2値交差エントロピー誤差関数(2クラス交差エントロピー誤差関数): 2クラス分類問題の誤差関数
  • 多クラス交差エントロピー誤差関数: 多クラス分類問題の誤差関数
  • コネクショニスト時系列分類法: シーケンス学習問題の誤差関数
  • ヒンジ損失関数: SVM の誤差関数
  • Huber 関数: ?
  • 指数損失関数: ?

などが挙げられるそうだ。

コスト関数 = 損失関数 + 正則化

こちらも参考記事によると 損失関数モデルの複雑さのペナルティ(正則化) の合計とのこと.

目的関数

そして、一番大きな枠組みである 目的関数
損失関数(誤差関数) , コスト関数 これらを引っくるめて 目的関数 と呼ぶらしい.

まとめ

  • 損失関数 ≒ 誤差関数
  • コスト関数 = 損失関数 + 正則化
  • 目的関数 ⊃ 損失関数, 誤差関数, コスト関数

【メモ】ハイパーパラメータの探索について

これは、G検定のための個人的なメモである.
内容はとても薄い.

相変わらず「ベイズ」もよくわからないし...


グリッドサーチ

与えられたハイパーパラメータの候補の値の全パターンのモデル構築を行う手法.

  • 設定A: 1, 3, 5
  • 設定B: True, False
設定\設定B True False
1 1, True 1, False
3 3, True 3, False
5 5, True 5, False

グリッドサーチではこれらの値の全ての組み合わせを使ってモデル構築を行い結果を検証する.
上記の例だと, この6つの組み合わせでモデルを構築してみる.

これは設定値が2つしかない(2次元)だからいいけど...
これが, 3次元, 4次元, 5次元になっていったらパラメータ数やばい...

メリット/デメリット

  • メリット
    • 調整する値の「あたり」が付いている場合にとても良い
    • 調整する値の数が少ない場合にとても良い
  • デメリット
    • 計算コストが非常に高い

ランダムサーチ

候補の値をランダムに組み合わせたモデル訓練を行いハイパーパラメータを検証する手法.

グリッドサーチと同じ例を想定すると,
グリッドサーチでは全6パターンを全て試すものだったが,
ランダムサーチでは各パラメータをランダムで実施する.

今回の例では6パターンなので効果の実感は薄いが, これが組み合わせ爆発が起きているときは有用である.
しかし, ランダムで組み合わせを決めるので運要素が出てくる.

メリット/デメリット

  • メリット
    • 調整するパラメータが多い場合にも実行可能
  • デメリット
    • 運次第

ベイズ最適化

不確かさを利用して次に探索を行うべき値を探していく最適化アルゴリズムの一種. 目的関数(Acquisition Function) を推定する 代理モデル(Surrogate Model) には ガウス過程(Gaussian Process) が使われる.

「前回の結果を基に次に調べる値を決めていく」手法.

ベイズ最適化は以下の戦略を使って順次的に実行する.

  • 探索(Exploration)
    • もっと良い結果があると考えてあえて異なる部分を調べること
  • 活用(Exploitation)
    • 以前にやってみて良い結果が出たので継続してその近辺を調べてみること