User:Sudeepam: Difference between revisions

Jump to navigation Jump to search
808 bytes added ,  26 March 2018
Line 220: Line 220:
== Project Description ==
== Project Description ==


So my special focus is to have ''a minimal trade-off between the speed and accuracy of the feature''. Before talking about that, let me first describe the three kinds of Neural Networks (Depending on the training data available) that we can end up making.
My special focus is to have ''a minimal trade-off between the speed and accuracy of the feature''. Before talking about that, let me first describe the three kinds of Neural Networks (Depending on the training data available) that we can end up making.


:'''1) A network trained with only the correct spellings of the inbuilt functions'''
:'''1) A network trained with only the correct spellings of the inbuilt functions'''
Line 237: Line 237:
I understand that using Neural Networks may seem like an overkill and that one could think about using traditional data structures like trie, or algorithms like 'edit distance' which are made for exactly these kinds of problems.
I understand that using Neural Networks may seem like an overkill and that one could think about using traditional data structures like trie, or algorithms like 'edit distance' which are made for exactly these kinds of problems.


However, edit distance, while being accurate, would be the slowest approach of the three, and trie, though fast, would not be able to generalize to unknown typographic errors. Neural networks, however, when trained with proper data, would be highly accurate, would generalize to unknown typographic errors, and because of the fact that ultimately '''a 'trained' Neural Network''' will be merged with Octave, this approach will be fast as well. Another disadvantage when using trie that I'd like to mention here is that, if, say, we are unable to arrange a sufficiently large list of common spelling errors or if an errors is made while typing the first few characters of the function, a trie would fail miserably, however, a neural network even in that case, would easily identify letter substitutions and transportations of adjacent letters.
However, edit distance, while being accurate, would be the slowest approach of the three because we essentially would need to calculate the edit distance between the input and '''all the functions''' of Octave and tries, though fast, would not be able to generalize to unknown typographic errors. Neural networks, however, when trained with proper data, would be highly accurate, would generalize to unknown typographic errors, and because of the fact that ultimately '''a 'trained' Neural Network''' will be merged with Octave, this approach will be fast as well.  
 
Another disadvantage when using trie that I'd like to mention here is that, if, say, we are unable to arrange a sufficiently large list of common spelling errors or if an errors is made while typing the first few characters of the function, a trie would fail miserably, however, a neural network even in that case, would easily identify letter substitutions and transportations of adjacent letters.


This is why, after due consideration, as described above, to me, '''neural networks look like the best solution to minimize the trade-off between speed and accuracy of the feature''' and this is the reason why I have chosen to use them.
This is why, after due consideration, as described above, to me, '''neural networks look like the best solution to minimize the trade-off between speed and accuracy of the feature''' and this is the reason why I have chosen to use them.
Also, when using Neural Networks, we '''have an option''' to not decide a definition of 'close' because, the neural network, because of sigmoid activation, will find the most probable match on its own.
However, 1 out of 100 times, a neural network could make very ambiguous predictions and so for an even better user experience, what we could add, is a 'control' to make sure that a very ambiguous output by the Neural Network is not shown to the user.  A simple control could be a 'close' edit distance between the output of the neural network and the misspelled input that the user gave. Again, if this extra feature, for an even better UX is added, a close will have to be defined.
98

edits

Navigation menu