机器学习算法笔记

机器学习三个步骤

Step1:Model
Step2:Goodness of Function
Step3:Gradient De’scent

线性模型(linear model)

y = b +w1x1+w1x2…

神经网络

Total Loss等于Cross Entrpy之和
使用Gradient Descent
使用backprapogation算偏微分
使用dropout

优化技巧:

这里写图片描述

当神经网络很深时,训练结果不一定更好,因为有梯度消失
Maxout 神经网络,激励函数是可变的

优化器optimizer加速神经网络训练

  • Stochastic Gradient Descent(SGD)
    分批将data放入NN
    这里写图片描述
  • Momentun
    斜率累加
    这里写图片描述
  • AdaGrad
    鞋子,错误方向存在阻力
    这里写图片描述
  • RMSProp
    结合Momentun和AdaGrad的方法
    这里写图片描述
  • Adam
    优化了RMSProp
    这里写图片描述

过拟合问题优化

  • 增加数据量

  • L1L2…regularization
    这里写图片描述

  • dropout(用于神经网络)
    随即忽略部分神经元,防止过度依赖于某些固定的神经元

CNN(卷积神经网络)

这里写图片描述

  • stride
    表示filter移动的像素距离
    strides = [1,x_move,y_move,1]
    padding = ‘SAME’--------表示fliter与原图大小相等,取到图外部分以0填充
    padding = ‘VALID’--------flier比原图小,挨着原图取

  • Convolution过程

这里写图片描述
使用tf.nn.conv2d()函数
这里写图片描述

  • Max Pooling过程
    这里写图片描述
    使用tf.nn.max_pool()函数
    这里写图片描述
  • Flatten
    这里写图片描述
import numpy as np
import cv2 as cv
from cv2 import HoughCircles

img = cv.imread("tupian/171921-005.png")
img = cv.resize(img, (1024, 512))

img =cv.GaussianBlur(img, (3, 3), 0)

grad_x = cv.Sobel(img, ddepth=cv.CV_16S, dx=1, dy=0)
grad_y = cv.Sobel(img, ddepth=cv.CV_16S, dx=0, dy=1)

grad_x_8u = cv.convertScaleAbs(grad_x)
grad_y_8u = cv.convertScaleAbs(grad_y)

img_sobel = cv.addWeighted(grad_x_8u, 0.6, grad_y_8u, 0.4, 0)

circles = HoughCircles(img, cv.HOUGH_GRADIENT, 1, 100, param1=100 , param2=30, minRadius=5, maxRadius=300)


print(circles.shape)
cv.destroyAllWindows()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41832686/article/details/81609788
今日推荐