人工智能实战2019 - 第8次作业 - 王铈弘
项目 | 内容 |
---|---|
课程 | 人工智能实战2019 |
作业要求 | 第8次作业 |
课程目标 | 学习人工智能基础知识 |
本次作业对我的帮助 | 探究与思考MNIST扩展 |
参考文献 | MNIST 扩展实践,mathAI,二维文法的研究及其在联机手写数学公式识别的应用 |
如何识别不合法(既非数字又非符号)的输入?
1.输出函数为softmax,非法输入产生的输出(概率),必会低于合法输入的输出。故在一定程度上,可以不针对非法输入做特殊处理。
2.在模型前增加输入合法性检验神经网络,统计常见的非法字符,将它们与合法字符一起输入神经网络,训练神经网络进行二分类,以区分合法输入和非法输入。
如何设计该计算器应用以识别下列元素:
更多的符号,比如sin()函数
1.在模型能够识别数字和字母的基础上,首先采用字符分割,对于英文字符要进行顺序组合,比对程序中的函数库,合法的组合(如sin)保留作为输入。
复杂的表达式结构(上下结构),比如指数\(e^{x}\),分数\(\frac{\pi}{2}\)
1.对于指数形式,将表达式向Y轴投影,根据重合度来区分算式层次。
2.对于复杂的包围结构,定义最小外接框,来各符号间的确定空间关系。
SPACIAL_RELATIONSHIP = {'including':0,'included':1,'unknown':2,
'superscript':3,'subscript':4,'up':5,
'down':6,'right':7,'left':8,'left_up':9,'left_down':10}
3.对于分式结构,分子、分母、分数线的中心点坐标在垂直方向是没有重合的。
复杂的表达式结构(包围结构),比如平方根
1.利用OpenCV中的图像分割技术来检测根号轮廓。