--- title: 第二週 tags: 計概 --- {%hackmd _OlqeDJfT46sMoXSly_V_Q %} ## 數位行蹤 數位上的動作都要留意,不論是否有分身,任何記錄都要小心,因為可以透過技術可以判定為同一個人。 ## CNN 卷積神經網路 >以下內容是上課時的所做的筆記: 圖片中可以存在很多個 kernel/matrix (3×3矩陣),然後去跟一個基準的kernel做內積。 因為內積的意義就是很接近的會放大,不接近的會縮小,所以將一個一個的內積加總可以得到分數,由分數去判斷,分數越大代表越相似。 2024/10 編修:修過機器學習的我現在回顧這段內容,一言難盡:) 有興趣的人只要查 `CNN` 就可以知道其基本架構,還有現在常見的模型跟技術了,像是經典的 `ResNet` 等等。 ## 外太空的世代 老師說我們這一世代是外太空的世代。 # 如何處理複雜問題 ## 1. 抽象化 / 分層 把一些不重要的細節隱藏起來,只在意屬性跟方法: <iframe src="https://drive.google.com/file/d/1tbMQ9fxX-Rcg9uwx44oqDzVOFtVt-_Go/preview" height="480"></iframe> :::info 老師說: - 外商很需要 system programming 的能力,就是 driver 驅動,系統跟硬體的協調 - 圖的上端是軟體 soft company - 雖然現在有些軟體會往下做軟硬整合 - 下端是硬體 foundry - 網路也一樣 有分層 ::: ## 2. 原則discipline 故意的給予一些限制,雖然似乎變得沒什麼彈性,但是其實可以得到一些更好的好處,例如: - 數位化/二進制 - 因為事情簡化了,各種操作就變得簡單,更容易除錯,拉成更大的系統 - ~~獵人的制約與誓約~~ :::info 老師說: - RISC 幾年前才竄起來,更低耗;CISC 單顆更強 - 2024/10 編修:桌機筆電大多就是 CISC 架構;手機等移動端常用 RISC 架構 - 但是現在大多會各取所長,不是說什麼架構就是怎樣,有興趣的人可以查兩種架構的特色 - 也可以閱讀我的 [計算機結構筆記]() 看看 `RISC-V` 指令集 ::: ## 3. The three -Y's 1. Hierarchy:把系統分成很多層 3. Module:每層的節點都是一個 module 每個點都有定義好的功能 3. Regularity 標準化:這樣節點就可以被用在很多地方,重複使用不浪費 >2024/10 編修回顧:我有點不知道為啥這個在這裡:) :::info 教授推薦修: - 電機系的課:例如訊號和系統 - 大三的課:資訊理論 information theorem - >2024/10 回顧:後來去聽了有點勸退 ::: # 2 進制 這部分可以參閱我的 [數位系統實驗筆記]() ### Most Significant Bit (MSB) / 最高有效位數 在補數中表示正負號用,也就是 Sign Bit。當 MSB 進位時,Overflow 發生。 ### Least Significant Bit (LSB) / 最低有效位數 ### Bytes & Nibbles and Bits 二進制中,一個位數就是一個 Bit,例如 011~2~ 是一個 3 bits 二進制數 - Nibbles 是 4 個 bits 為一組 - Bytes 是 8 個 bits 為一組 :::info `word` 要看是什麼位元的 CPU,可以是 16、32 或 64 bit 等等 ::: ### Most & Least Significant Bytes / 最高 & 最低有效位元組 好像 16 進制比較用的到,例如 `CEBF9AD7` 中 `CE` 就是 MSB,`D7` 就是 LSB 不同語言有不同的儲存順序 可能有些先塞 msb 之類的。 > 2024/10 編修:這就是[大小端序 (Big/Little Endianness)問題](https://zh.wikipedia.org/zh-tw/%E5%AD%97%E8%8A%82%E5%BA%8F) ## Complement / 補數 二進制要如何表達負數?,有以下兩種方法可以達成。 ### 1's complement 一補數 直接將某個正數取反,得到的就當作是該數的負數。 缺點是會產生 -0,而且正負數相加時會得到 -0 ,還要再多加 1 才會是 +0。 ### 2's complement 二補數 為了避免產生 -0,所以我們將某個正數取反後的值 +1,得到的數當作負數。這樣一來 -0 再加上 1,就會因為溢位而變回 0。 ## Extension 當某個較小位數的值,要擴展成較大的位數時,會需要判別該數是有符號還是無符號,決定如何擴展。 >這部分一樣可以參考計算機結構的筆記 ### Sign-Extension 有符號的擴展。當原本的值是具有符號時,就需要使用這種擴展。 如果原本的數是負數,則前方的數都補 1;否則補 0 | | 正數 | 負數 | | :-: | :-: | :-: | | 4-bit | 0b0011~2~ | 0b1011~2~ | | 8-bit | 0b00000011~2~ | 0b11111011 | ### Zero-Extension 不論正負數均補 0,因此負數會出問題,所以做這種擴展的只能是跟符號無關的。 <!-- 這是三小 >Proof: > 4-bit:|-5| + |11| = 2^4^ > 8-bit:|-5| + |251| = 2^8^ > = |-5| + |11 + 2^8^-2^4^| > 2^8^-2^4^=2^4^(2^4^-1)=2^4^(2^3^+2^2^+2^1^+2^0^) > =2^7^+2^6^+2^5^+2^4^ > =11110000~2~ | | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | | - | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | = | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | --> ## Snifer 可以攔截封包。 ## Syntax 格式 / Symbol 符號 ## ACSII Code 只是編碼,沒有實際意義 not semantic rich。 所以有了 word embedding,把文字的 0110 那些,存在一個有意義的位置,用一個叫 BERT 的方法實現文字意義: >有兩個有相關的物件存在兩個位置 兩個位置相減可以得到一個向量 如果有另外類似關係的兩物件 位置相減可以得到,相同的向量 可以查 NLP natural language program,在 IEEE spectrum 上。 :::info 2024/10 編修:請查 Word2Vec,這是 ML 在處理自然語言時的一個重要的技術 ::: ## 採樣率 Bit 的大小決定你能聽到的細緻度,因為越多的 bit 可以儲存越多種 ==大小 / magnitude== <iframe src="https://drive.google.com/file/d/118K9E8mvSrhDe0WVAOLIe8V6zAD2E0Eg/preview" height="480"></iframe> CD 計算時要注意單雙聲道(Mono/Stereo),圖片在計算時要注意是 3 乘上 8 個 bit。 但是講色彩種類時是 2^3*8^=16,777,216,也就是販賣螢幕常看到的 16.7M。 >2024/10 編修:有些螢幕跟圖片支援的位元深度不是 8 bit 而是 10 bit。 :::info 老師說: - 採集頻率要 ==兩倍以上== 才不失真,這個訊號與系統會提到。 - 跟生物力學一樣的東西 (物理治療系的課) - MP3 跟 JPG 的 P 是 pack :::