---
# System prepended metadata

title: Untitled

---

## CNN建模

### 基本概念圖
![](https://i.imgur.com/HM1QhXK.png)
![](https://i.imgur.com/gRz1gmR.png)


**1. Convolution Layer卷積層**
   - 卷積運算
       - 卷積運算就是將原始圖片的與特定的Feature Detector(filter)做卷積運算(符號⊗)，卷積運算就是將下圖兩個3x3的矩陣作相乘後再相加，以下圖為例 0*0 + 00 + 0*1+ 0*1 + 1 *0 + 0*0 + 0*0 + 0*1 + 0*1 =0

![](https://i.imgur.com/MIDDbHx.png)
(依序完成)
![](https://i.imgur.com/nUIlF7q.png)

  中間的Feature Detector(Filter)會隨機產生好幾種(ex.16、25、36)，其主要目的是在萃取照片特徵
  ![](https://i.imgur.com/yn3R1F3.png)
  (16種不同的Feature Detector)
* 當有兩層卷積層時，Feature Map會?   ANS:feature map會變更多
  * 卷積層的個數參數是跟輸入channel有關，基本上輸入channel有幾個，每個kernel map大小就是 k × k × channel數。
  
  ![](https://i.imgur.com/nmCzBCD.png)

  
**2. Pooling Layer 池化層**
   *  會根據feature map的結果去做pooling，然後得到的就是降維的特徵圖
      *(BUT這裡使用的是Max Pooling)*
 ![](https://i.imgur.com/76bxCb2.png)
![](https://i.imgur.com/XBbdGvS.png)

**3. Fully Connected Layer 全連接層**
  * 基本上全連接層的部分就是將之前的結果平坦化之後接到最基本的神經網絡了
![](https://i.imgur.com/swedr1Z.png)
![](https://i.imgur.com/D2Pxjjl.png)
![](https://i.imgur.com/4b3eRQ1.png)


### Overfitting&Underfitting
![](https://i.imgur.com/LZTkVi5.png)
1.  Underfitting 欠擬合
  * 當我們在訓練一個模型時，發現不管是在訓練集或是測試集資料都無法達到一定的準度時，就可能是遇到Underfitting的狀況。
  * 通常造成Underfitting的主要原因包含『訓練時間不足』、『模型複雜度不足』。
* 在深度學習中，可以透過增加訓練迭代的次數來解決「訓練時間不足」的問題，透過調整神經元數量、模型深度、Kernel深度來解決「模型複雜度不足」的問題。
2. Overfitting 過擬合
*  造成Overfitting的主要原因包含：
   * 訓練資料不足 
   * 迭代次數過多
   * 模型複雜度太高
* 解決方法:
  * Early Stopping(針對迭代次數過多、訓練時間過長的問題)
    * Early Stopping其實就是透過觀察測試資料集Loss的變化來停止訓練，並透過調整 patience決定容忍度
      ex.我們設置patience=10，也就是說當測試資料集的Loss在10個epoch後都沒有下降，此時就要停止訓練
  * Dropout
  ![](https://i.imgur.com/YWHsmzQ.png)
    * Dropout為Deepl Learning中常用的技巧，隨機關閉NN層中的一定比例神經元(讓其值為0)，藉此降低模型對各個神經元的依賴性。但過高比例的Dropout會影響模型的收斂，尤其是在Convolution層，所以大家使用上也要特別注意。
    * 在Keras中設置Dropout
```python=
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout

classifier=Sequential()

classifier.add(Dense(output_dim=100,activation='relu'))
classifier.add(Dropout(p=0.5)) ## p為超參數，常見為0.5、0.3、0.1，但也沒有一定

classifier.add(Dense(output_dim=100,activation='relu'))
classifier.add(Dropout(p=0.3))

classifier.add(Dense(output_dim=30,activation='relu'))
classifier.add(Dropout(p=0.3))
```
  
 



---
## Paper
1. Cataract Detection using Digital Image Processing(外面)
BUT 沒有提到圖片來源
https://ieeexplore.ieee.org/document/8978316
2. Automatic cataract detection and grading using Deep Convolutional Neural Network(裡面)
https://ieeexplore.ieee.org/document/8000068
3. Computer Aided System For Early Detection Of Nuclear Cataract Using Circle Hough Transform (外面)
4. Mobile Application Based Cataract Detection System
5. Detection of Nuclear Cataract in Retinal Fundus Image using RadialBasis FunctionbasedSVM(裡面)
6. Cataract detection using smartphone
7. <font color=red>Performing high accuracy of the system for cataract detection using statistical texture analysis and K-Nearest Neighbor(外面)</font>
https://ieeexplore.ieee.org/document/7219958/citations#citations
8. A Computer-Aided Diagnosis System of Nuclear Cataract(裡面)
9. Lens image registration for cataract detection
10. Automatic Cataract Classification System Using Neural Network Algorithm Backpropagation(裡面)
11. <font color=red>A novel cataract detection algorithm using clinical data mapping</font>
https://ieeexplore.ieee.org/document/7906816/references#references
12. Cataract Detection and Grading Based on Combination of Deep Convolutional Neural Network and Random Forests(裡面)
13. Detection of diabetic retinopathy and cataract by vessel extraction from fundus images(裡面)
14. Instant Detection Of Cataracts (外面)
https://www.ijltet.org/journal/152015688507.%202117.pdf





---


