数字通信以及自然语言处理的解码算法之维特比算法

1.用途:

          数字通信以及自然语言处理的解码算法
 
2.算法描述:
          a.具体用途:
               针对篱笆网络的有向图的最短路径问题提出的,凡是使用隐含马尔科夫模型描述的问题,都可以用他来解码,包括数字通信、语言识别、机器翻译、拼音转汉字、分词等
          
          b.模型图:
               i.模型描述:以拼音转汉字为例,输入的拼音为y1,...,yn,对应的汉字为x1,...,xn,输入的(可见)序列为Y(对比传统模型的输入),而产生序列Y的隐含序列为X,模型描述为
                    
               
               ii.求解的问题:
        
                    选取概率最大的作为隐含的序列
               
               iii.模型升级:
                    对模型i,每个状态的输出是固定的,但是每个状态的值可能有多个,比如输出zhong,其状态可能是中 种 重等多个汉字,将状态按照不同的值展开,得到模型二,也成为篱笆网络:
                    
 
                    vi.穷举算法的复杂度:
                         假设每个状态的可能值有3或者4个,找出并计算每一条从第一个状态到最后一个状态的路径和长度难度不大,但是困难的地方时路径的组合非常多;汉语中无声调拼音平均对应13个汉字,假设句长为10个汉字,则路径的组合数为13^10约为5*10^14,而每天路径需要20次乘法,就是10^16次,因此需要一个最好能和状态数目成正比的算法
 
                    v.维特比算法的基础:
                         1.概率最大的路径P经过某点,则从起点S到此点的子路径一定是起点S到此点的最短路径
                         2.从起点S到E的路径经过第i时刻的状态,如果i时刻有k个状态,如果记录了从S到k个节点的最短路径,则最短路径必进过其中一条
                         3.综合上述两点,从状态i进入状态i+1时,只需考虑从S到状态i的k个节点的最短路径,以及状态i的k个节点和状态i+1的m个节点间距离即可
 
                    iv.算法步骤:
                         1.从点S出发,对于第一个状态x1,S到其各个节点的最短路径d(S,x1i)为S到xi1的距离
                         2.对于第2个状态x2,S到其各个节点的最短路径d(S,x2i)=d(S,x1i)+d(x1j,x2i),其中j有n1中可能,对应于x1状态的可能取值,需要对其求最小值,即,假定对于状态x2,有n2个节点,复杂度为O(n1*n2)
                         3.依此类推,直到网格的最后一个状态,每一步状态的复杂度都和两个状态的节点数据成正比,如果隐含马尔科夫链每个状态最多有D个节点,即网格的宽度为D,而网格的长度为N,则其复杂度为O(N*D^2);对于拼音输入的问题,复杂度为13*13*10约为10^3
 
3.CDMA技术:
          a.通信信号的载波频率是快速跳变的,发送方和接收方事先约定好一个序列,扩频传输,不仅仅在一个频率上进行信号传输,而在一个较宽的频率上进行传输
               i.抗干扰能力强
               ii.很难被截获
               iii.对带宽的利用更加充分
          b.TDMA时分多址
               把同一个频率按时间分成很多分,每个人的通信数据只占用这个频带传输的1/N,GSM的原理;但是频率间的带宽还是浪费了
          c.CDMA中通过密钥过滤掉自己无法解码的信号,到达解码的目的
posted @ 2017-01-16 15:36  成金之路  阅读(962)  评论(0编辑  收藏  举报