2024年2月16日金曜日

高校情報II教師用資料を読む

https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00742.html


ちゃんと知らなかったことをメモ


 情報の機密性・完全性・可用性に加えて、真正性,責任追跡性,信頼性,否認防止を加えて情報セキュリティの7要素と呼ぶ


19世紀末にウィリアム・モリスらが展開した,アーツ・アンド・クラフツ運動

バウハウスをはじめとするモダンデザイン

オットーノイラートらのアイソタイプ→ピクトグラム 東京オリンピックで普及

インフォグラフィックス 路線図のようなもの 情報を理解するためのデザイン 

 情報デザインには,情報を整理するための「論理」,目的や意図を持った情報を受け手に対して分かりやすく伝達するための「表現」,操作性を高めるための「機能」という3つの側面があると考えられる。


ソーシャルメディアは,相手との物理的な距離を超えるだけでなく,時間軸(即時性),人数(同報性),仲間内だけかどうか(閉鎖性),実名かどうか(匿名性)なども含めた多様


1.0(狩猟社会),2.0(農耕社会),3.0(工業社会),4.0(情報社会)


誤差逆伝播法の発表(1986年)あたりが第二次人工知能ブーム

人工知能が実際のサービスにおいて果たす役割としては,「識別」「予測」「実行」という大きく3種類があるとされている。識別では「音声認識」や「画像認識」「言語解析」など,予測では「数値予測」や「ニーズ予測」など,実行では「作業最適化」や「作業の自動化」など


アメリカの学者であるレイモンド・カーツワイル氏によれば,2029年にはAIが人間並みの知能を持ち,2045年には,AIなどの技術が自ら人間より賢い知能を生み出すことが可能となり,人間の知能を超え,人間の想像を超越して社会が進化していく「シンギュラリティ」(技術的特異点)が来ると予測している


個人間送金のくだりで、現金の「割り勘」が過去形で紹介されている


2章

POP広告 (Point Of Purchase Advertising:購買時点広告)  内製化の例 クライアントワークも紹介


メディアプランニング 目的、対象に合わせてメディアの組み合わせを選び計画すること 心を動かし人に行動させたい

 SNSでのクチコミを広める、もここに入れて論じられている


複数のメディアで段階を追って情報を伝える=クロスメディア 続きはwebで、QRコードでさらなる情報、など メディアミックスとは別概念


プロトタイプの作成、で一単元! ペーパープロトタイプ、ワイヤーフレーム、ストーリーボード、ムードボード(コンセプトアートはここに含む)


デザインの対象になる人への現地調査 フィールドリサーチ も説かれる ペルソナ 要件定義


動画表現でパンやティルト、カットの順序(モンタージュ理論)、絵コンテを教えている これには中井くんもにっこり


Webオーサリングツール htmlやCSSを理解していなくても使えるツールのこと


「手続き型インタフェース」時間や数値が含まれる「目的型インタフェース」切符の購入、定期券の購入、など「自動型インタフェース」おまかせボタンなど 


構造化インタビュー 用意した質問のみ 統計的集計

半構造化インタビュー

非構造化インタビュー 大まかなテーマのみ設定 質的調査

 ディプスインタビュー 1vs1

 エスノグラフィックインタビュー  現地で対象を観察をしながら行うインタビュー

グループインタビュー


ユーザビリティ評価の例 プロトコル分析 サービスを使ったときにしたこと、感じたことを言葉(発話)にしてもらう

 シートの例が乗っている


ユーザーの発信力を利用して他のユーザーの信頼や評判を獲得するという意味 アーンドメディア(Earned Media) SNS発信の特徴がこれ 有料広告はペイドメディア オウンドメディアへの入口に


Webサイトにおいて,ユーザーに到達してほしい最終的な成果のことをコンバージョン(Conversion)という。例えば,通販サイトにおけるコンバージョンは商品の購入であり,新製品の広告サイトであれば資料請求である。


第三章からはデータサイエンスの話なので んにゃぴ…となる可能性が高いが、時代についていくためにがんばって吸わないと!という気持ちである


スタージェスの公式 ヒストグラムの階級の数は1+log2 n (nはデータの個数)


適切なサンプルサイズの求め方 信頼水準95%の場合 196*p(1-p)/d^2 (nはサンプルサイズ、pは回答率、dは許容誤差) これを計算するwebツールがある https://jp.surveymonkey.com/mp/sample-size-calculator/


NoSQLってなに? Not only SQL データをキー・バリュー型,カラム型,ドキュメント型,グラフ型などの形式で蓄積


scholar scope グラフ型データベース表現の例 https://navischola.app/network/6/generalscience-and-engineering/


レコード(タプル)は表の行を表し,一つ一つのデータ


インデックス=行名 データフレームの一番左の列に書かれているもののこと

カラム=列名 なんかRDB(リレーショナルデータベース)と用語が交じってて面倒だな

バリュー カラムでもインデックスでもない、中身の値


Google DriveとGoogle Colaboratory(以下Colabと略す)を使ってPythonでデータフレームを作成できる


pandas Pythonでデータフレームを扱うためのパッケージの一つ


JSON Formatter & Validator(https://jsonformatter.curiousconcept.com/)

JSONデータを貼り付けるだけで、簡単に整形や構文チェックができるツールです。エラー箇所のハイライト表示もあります。


JSONLint(https://jsonlint.com/)

JSONデータの整形・構文チェックができるだけでなく、データを圧縮する機能もあるツールです。


NoSQLで使用されるデータ保持の形式としてLOD(Linked Open Data)もある


クローリングも含めてWebスクレイピングといい,Pythonは,requestとBeautiful Soup4というパッケージ,Rはrvestというライブラリ


HTMLのタグに注目することでクローリングのためのプログラムが書ける


表計算ソフトで行う整形

•不要な行や列を削除する

•項目名を修正する

• 不要なカンマが付与されないようセルの書式を「通貨」から「標準」に変更する

• プログラムでファイルを開くことができるよう「CSV UTF-8形式」で保存する

必要なら以下も

• 表記のゆれを修正する(大文字と小文字,西暦と和暦,正式名称と略称,空白の有無など)

•不要なデータの注釈や空白文字を除去する

•重複するデータを除去する


ワイドフォーマット 一つの商品の全ての属性を,横に並べた列を使い,1行で保持する

 空白のセルが多くなる可能性

ロングフォーマット ,同じ商品であっても属性ごとに行を縦に増やして,全ての属性の情報を保持

表計算ソフトではピボットテーブルで変換できる

ロングフォーマットのデータをワイドフォーマットに変換したときに,完全に表が埋まらないことにより欠損値となる場合がある(NaN、NAなど)


ブレーンストーミングに使用する論理図には,特性要因図(フィッシュボーンダイアグラム)図表1,要因連関図,イシューツリー,ロジックツリー,ロジックモデル等


説明変数の別名、予測子,要因変数

重回帰モデル 説明変数がいろいろかわるとき、その線形結合=予測値を求め、目的変数(示したいこと)との相関をみる

Yハット=予測値=重み付きの合計

単回帰モデル 説明変数をひとつだけつかうやつ 直線の相関になる

最小二乗法 重回帰モデルの回帰係数は,YとX1,X2...Xpに関するデータが与えられたとき,実際のYの観測値と重回帰モデルによる予測値の差(残差)の2乗和(残差平方和)を最小にするように求められる。

予測値と実際の観測値との相関係数を重相関係数という。重相関係数は,0から1の間の値をとる。

重回帰の話はピンときていないので、別の機会に学びなおす必要がある

寄与率(決定係数)R^2
 目的変数Yの変動の何パーセントが与えられた回帰モデルで説明できたか 100%に近いとモデルがデータに適合しているといえる

自由度 その統計量を構成する本質的な(独立した)要素の数

標準誤差:残差の自由度を調整した標準偏差である。(SE  /fE)の平方根で求められ,Yと同じ具体的な測定単位を持つ(秒とか)。

エクセルのアドインで回帰分析をする方法が乗っている
統計ソフトRは使えるに越したことはないが、Excelのあとでいいか…という気持ち

Excelの出力結果は必要に応じて,レポート等では書き直す必要がある。「重相関R」→「重相関係数R」「重決定R2」→「寄与率(決定係数)R^2」「補正R^2」→「自由度修正済みR2」

変数選択もしくはモデル選択(モデリング)
 複数の説明変数の中には,目的変数の予測に役立たないものが含まれている可能性がある。そこで,モデル式の構築にあたっては,説明変数の取捨選択が重要な課題

過剰適合,過学習
 寄与率R^2ばかりデカくして、新しいデータの予測力がまるでないもの

自由度調整済みの寄与率R^2が大きなモデルほど説明力のある良いモデル
AIC(赤池の情報量規準) 小さいほど良い
https://ja.wikipedia.org/wiki/%E8%B5%A4%E6%B1%A0%E6%83%85%E5%A0%B1%E9%87%8F%E8%A6%8F%E6%BA%96

P値とP-値ってどう違うの?

変数選択
 総当法(全ての変数の組み合わせを尽くす方法)
 変数増加法(一つの変数からだんだんと変数を増やしていく方法)
 変数減少法(全ての変数を採用したモデルから変数を減らしていく方法)
 変数増減法(ステップワイズ法:変数を減らしたり増やしたりする方法)

自動変数選択の機能は便利ではあるが, 説明変数が目的変数に与える効果に言及し要因分析を行う場合は,自動変数選択は安易に使用すべき手法ではない

主成分分析と次元削減←ぜんぜん聞いたことのない話でてきた、俺の見聞狭すぎる
 ついにツールとしてのExcelがお役御免にされている?
 とおもいきや使われた。エクセルってすごい

変数の数が増えれば,データから個々の対象の特徴を総合的に捉えることが難しくなる。主成分分析を使えば,このような多変量(高次元)のデータに対して,変数の間の共分散や相関の強い変数同士をまとめて,個々の対象の違いを最も大きくするような主成分と呼ばれる新しい特徴量(変数)を作成することができる
 線形結合(重み付きの合計)によって情報を損なうことなく成分をつくれる

次元削減(次元縮約)
 対象の弁別に対して寄与の小さい下位の方の主成分を捨て上位の主成分のみ採用することで,元の個数pより少ない数で,対象の特徴をプロファイルすることが可能になる

表計算ソフトで主成分を求めてみる←これ教育に携わる者なら絶対にやっとくべきだなあ
 Excelでは「ソルバーアドイン」

教師アリ学習の代表が回帰と分類
 何度まで上がるか 回帰で
 今日より高いか低いか 分類で

k-近傍法

決定木による二値分類

教師なし学習の代表、階層的クラスタリング
デンドログラム(樹状図、樹形図) クラス併合の様子を図示したもの
ヒートマップ どの特徴が顕著かを色で示した図

クラスタ代表点の決定ウニは群平均距離やウォード法を用いる(他もある)

クラスタリングの前にデータの基準化を行う(あまりにも差が大きい項目の影響をバランス良くする)

k-means法、k平均法
 あらかじめ分割するクラスタ数をきめておく、ランダムな代表点から始めてクラスタの平均を新代表点にして、点が変わらなくなるまで繰り返す
 初期値の決め方をランダムではなく一定アルゴリズムに従って行うのがk-means++法

エルボー法
 適切なクラスタ数を求める方法
シルエット図、シルエット係数
 エルボー法ではっきり決定できないときに用いる

マーケットバスケットデータ
 一人の客による1回の購入データ
アソシエーション分析
 支持度
  すべての商品を買った人のうち、特定の商品を買った人の割合
  コーヒーとパン、などペアの支持度もある
、確信度
  商品Xを買った人のうち、商品Xも商品Yも両方とも買った人の割合
、リフト値
  X→Yの確信度を商品Yの支持度で割った値

AIのキーワード
 自律性、適応性

ニューラルネットワーク
 入力、隠れ層=中間層、出力層がある
 活性化関数によってつながっている
 複数の隠れ層があるのが深層学習

入力と重みづけは行列の計算(内積、ドット積)を行う
 これにバイアスが加算されるのが普通

活性化関数
 ステップ(二値)、シグモイド(ゆるやかな線形)ソフトマックス(増加するにしたがって急激に増加)など
 犬、猫、鳥…などに分類する場合はソフトマックス関数が多く用いられる

パーセプトロン
 はっきりとした分類をする、ステップ状の分類器このこと

ニューラルネットワーク学習の技術
損失関数
 性能の良しあしを図る指標 0に近いほど良い 2乗和誤差、交差エントロピー誤差が有名
勾配降下法
 最適な(損失関数が0にちかい)重みやバイアスを探す手法
 グラフの傾きを探り、極小値を求める
        これが全体の最小値となるとは限らないため、地点を変えて繰り返し極小値を求める

バックプロバゲーション 誤差逆伝播法
 今の代表的な手法
 出力結果のの誤差を、次の重みづけとバイアスを決める計算に利用

オーバーフィッティング(過学習)
 学習の際に特定のデータにだけ過剰に対応し,学習に用いていない他のデータでは正しくならない状態のことである。

Neural Network Console(https://dl.sony.com/ja/ アカウント取得が必要)ニューラルネットワーク学習が試せる SONY提供

OCR(Optical Character Reader)

Amazon Mechanical Turk(https://aws.amazon.com/jp/mturk/faqs/)
 コンピュータだけではできないような仕事をプログラム(アプリ)と人間の仕事で補っている例

MeCab githubで公開 Word2vecのライブラリ?

ポジティブな言葉が多い、ネガティブが多い、などの傾向が見える

YOLO(You Only Look Once)
 リアルタイム物体検出・認識アルゴリズム
 Cで動くのでコンパイルが必要 tinyYOLOと呼ばれるパッケージ githubで公開

第四章

POSシステム(Point Of Sales System)販売時点

情報システムの形態
バッチ処理 一定期間あるいは一定量データをためてから,一括して処理をする
オンライントランザクション処理 データの発生と同時に処理するが,高い信頼性と即時性が要求され,多数の端末からの同時要求に対しても,応答時間を維持

サーバは一般的にファンクション層とデータ層(データベース)にわけられる クライアントとあわせて三層構造

情報Iでは個人セキュリティ、情報IIでは組織やシステムのセキュリティを学ぶ

SSL(Secure Sockets Layer)暗号化プロトコル。
その後継が、TLS(Transport Layer Security)

ファイアウォール
 パケットフィルタリングが例
  許可された形式のヘッダーを持つパケットだけを通過させる
 アプリケーションゲートウェイ
  プロキシサーバーが外部とのリクエスト/リプライのやりとりに挟まる(組織内ネットワークのリクエストを集める
DMZとは、DeMilitarized Zoneの略で、直訳すると「非武装地帯」 外部ネットワークと内部ネットワークに中間地帯を設けること

ユーザ認証の方法
 コールバック 回線をいったん切り、システム側から再発信して通信を開始する
 バイオメトリクス 指紋、静脈、署名速度や筆圧

セグメント化
 VLAN 仮想的なLANセグメントをつくる たとえば学生と教職員が使うネットワークを分離

業務要件定義 業務上なにができなきゃいけないか
機能要件定義 上記のために、システムの機能として何をもってないといけないか

ユースケース図
 システム上でできる/行われることと、それを誰が行うか(アクター)を表した図

シーケンス図
 システムのどの部分が、何のユースケースで使われるか、順序も含めて図示

DFD(Data Flow Diagram)
 データの流れや処理を記号であらわす ↘がデータフロー、○が処理、二重線がストア、始まりと終わり(吸収)が□

アクティビティ図
 フローチャートのひし形場合分けが入っているやつ? 上に書いたどのパターンより詳しいのかも

モジュール化 それぞれでデバッグできる、開発の効率化

カプセル化 内部がいじられないようにする? 関数の入出力だけで他とかかわるイメージ

余談:自分のGODOT作業でもモジュール化カプセル化は意識しないといけない

ホワイトボックステスト
 すべての命令が一回以上実行されるようなテストコードを書く

ブラックボックステスト
 ソースコードを見ずに、仕様書の機能を満たしているかをテスト
同値分割 
 分割された領域(同値クラス)ではどれを試しても同じ、という考え
境界値分割
 境界値=上限や下限、またはそのすぐとなり
 範囲をまたいでどちらも正しい処理がされるかをためす
 うるう年など例外処理も入る可能性

デバッグの帰納法
  ・ プログラムの正常終了,異常終了のデータを集めて構造化し仮説をたてる

分割したシステムの結合とテスト
スタブ 下部モジュールが完成していないときに使うダミー トップダウンテストで使う
テストドライバ 上位モジュールのダミー ボトムアップテストで
ビッグバンテスト 全部繋げていきなりテストする

ユースケーステスト
 「検索件数は(例えば10件表示されたら多すぎるかどうか)」などを利用する視点から想定

非機能テスト
 処理時間、高負荷で正常動作するか、など

リバースブルートフォース
 同一パスワードでIDを変えてログインを何度も試みる
  同じパスで何回もログインを試みられたら、脆弱パスワードとして使用不可にするなど対策

クロスサイトスクリプティング XSS
 HTMLページに,<Script>(スクリプトタグ)を追加して,そのサイトの範囲内で動的なページであるかのように振る舞う(クライアントに対する)攻撃

クロスサイトリクエストフォージェエリ CSRF
 Webブラウザからの情報を詐称して,Webサイトのプログラムに意図しない不正なリクエストを実行させ,サーバの情報を取得したり,コードを実行させたり,などの動作

ウォーターフォール型開発↔スパイラル型開発

テスト駆動開発
 顧客の要求(要件)をみたすようなテストから開発し、のちにそのテストに合格するようなシステムをつくる

unittest モジュールpythonを活用すべし

リファクタリング
 「外部から見たときの振る舞いを保ちつつ,理解や修正が簡単になるように,ソフトウェアの内部構造を変化させること」保守性を高める
 関数の抽出、変数のインライン化、変数名の変更など

 WBS(Work Breakdown Structure)とは,作業を分解して構造化する手法
タスク振ってガントチャートで管理するといいぞって話


全体を振り返って
新しい世代がこれをまなんでIT人材になるのすばらしすぎる…俺も軽んじられない程度にはならないと…



0 件のコメント:

コメントを投稿