diff --git a/document.aux b/document.aux index 151da2f..973abbe 100644 --- a/document.aux +++ b/document.aux @@ -39,131 +39,154 @@ \newlabel{statement}{{}{8}{Problem Statement}{section*.7}{}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Stakeholders}{8}{section*.8}} \newlabel{stakeholders}{{}{8}{Stakeholders}{section*.8}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Project Constraints}{8}{section*.9}} -\newlabel{constraints}{{}{8}{Project Constraints}{section*.9}{}} \abx@aux@cite{2} \abx@aux@segm{0}{0}{2} -\abx@aux@segm{0}{0}{1} \abx@aux@cite{3} \abx@aux@segm{0}{0}{3} \abx@aux@cite{4} \abx@aux@segm{0}{0}{4} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Literature Review}{9}{section*.10}} -\newlabel{literature}{{}{9}{Literature Review}{section*.10}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Existing Tools}{9}{section*.11}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Related research}{9}{section*.12}} +\abx@aux@segm{0}{0}{1} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Project Motivation}{9}{section*.9}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Technical Specification}{10}{section*.10}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Project Constraints}{11}{section*.11}} +\newlabel{constraints}{{}{11}{Project Constraints}{section*.11}{}} +\abx@aux@segm{0}{0}{3} +\abx@aux@segm{0}{0}{1} \abx@aux@cite{5} \abx@aux@segm{0}{0}{5} \abx@aux@cite{6} \abx@aux@segm{0}{0}{6} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data Collection}{10}{section*.13}} -\newlabel{tweet_collection}{{}{10}{Data Collection}{section*.13}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Twitter and Twitter API}{10}{section*.14}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Literature Review}{12}{section*.12}} +\newlabel{literature}{{}{12}{Literature Review}{section*.12}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Existing Tools}{12}{section*.13}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Related research}{12}{section*.14}} \abx@aux@cite{7} \abx@aux@segm{0}{0}{7} -\abx@aux@segm{0}{0}{6} -\abx@aux@segm{0}{0}{1} -\abx@aux@segm{0}{0}{2} -\abx@aux@segm{0}{0}{4} \abx@aux@cite{8} \abx@aux@segm{0}{0}{8} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data Collection}{13}{section*.15}} +\newlabel{tweet_collection}{{}{13}{Data Collection}{section*.15}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Twitter and Twitter API}{13}{section*.16}} \abx@aux@cite{9} \abx@aux@segm{0}{0}{9} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tweepy Python Package}{11}{section*.15}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{11}{section*.16}} -\newlabel{sentiment}{{}{11}{Sentiment Analysis}{section*.16}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Natural Language Processing}{11}{section*.17}} -\newlabel{algorithms}{{}{11}{Natural Language Processing}{section*.17}{}} +\abx@aux@segm{0}{0}{7} +\abx@aux@segm{0}{0}{1} +\abx@aux@segm{0}{0}{3} +\abx@aux@segm{0}{0}{6} \abx@aux@cite{10} \abx@aux@segm{0}{0}{10} -\abx@aux@segm{0}{0}{10} -\abx@aux@segm{0}{0}{10} \abx@aux@cite{11} \abx@aux@segm{0}{0}{11} -\abx@aux@segm{0}{0}{10} -\abx@aux@segm{0}{0}{10} -\abx@aux@segm{0}{0}{10} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Tweepy Python Package}{14}{section*.17}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{14}{section*.18}} +\newlabel{sentiment}{{}{14}{Sentiment Analysis}{section*.18}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Natural Language Processing}{14}{section*.19}} +\newlabel{algorithms}{{}{14}{Natural Language Processing}{section*.19}{}} \abx@aux@cite{12} \abx@aux@segm{0}{0}{12} +\abx@aux@segm{0}{0}{12} +\abx@aux@segm{0}{0}{12} \abx@aux@cite{13} \abx@aux@segm{0}{0}{13} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{12}{section*.18}} -\newlabel{Vader}{{}{12}{Valence Aware Dictionary and sEntiment Reasoning}{section*.18}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Neural Networks}{12}{section*.19}} -\newlabel{networks}{{}{12}{Neural Networks}{section*.19}{}} +\abx@aux@segm{0}{0}{12} +\abx@aux@segm{0}{0}{12} +\abx@aux@segm{0}{0}{12} \abx@aux@cite{14} \abx@aux@segm{0}{0}{14} -\abx@aux@segm{0}{0}{13} \abx@aux@cite{15} \abx@aux@segm{0}{0}{15} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{15}{section*.20}} +\newlabel{Vader}{{}{15}{Valence Aware Dictionary and sEntiment Reasoning}{section*.20}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Neural Networks}{15}{section*.21}} +\newlabel{networks}{{}{15}{Neural Networks}{section*.21}{}} \abx@aux@cite{16} \abx@aux@segm{0}{0}{16} +\abx@aux@segm{0}{0}{15} \abx@aux@cite{17} \abx@aux@segm{0}{0}{17} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{13}{section*.20}} -\newlabel{types}{{}{13}{Recurrent Neural Network (RNN)}{section*.20}{}} \abx@aux@cite{18} \abx@aux@segm{0}{0}{18} \abx@aux@cite{19} \abx@aux@segm{0}{0}{19} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{16}{section*.22}} +\newlabel{types}{{}{16}{Recurrent Neural Network (RNN)}{section*.22}{}} \abx@aux@cite{20} \abx@aux@segm{0}{0}{20} -\abx@aux@segm{0}{0}{20} \abx@aux@cite{21} \abx@aux@segm{0}{0}{21} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{14}{section*.21}} -\newlabel{lstms}{{}{14}{Long-Short Term Memory (LSTM)}{section*.21}{}} -\abx@aux@segm{0}{0}{21} -\abx@aux@segm{0}{0}{20} -\abx@aux@segm{0}{0}{21} \abx@aux@cite{22} \abx@aux@segm{0}{0}{22} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Kera and TensorFlow}{15}{section*.22}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Optimisers}{15}{section*.23}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Loss}{16}{section*.24}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Regularisation - Dropouts}{16}{section*.25}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Machine Learning}{16}{section*.26}} -\newlabel{machine}{{}{16}{Machine Learning}{section*.26}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Naive Bayes}{16}{section*.27}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Other Techniques}{16}{section*.28}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Ngrams}{16}{section*.29}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Scoring and Validation}{16}{section*.30}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Solution Approach}{17}{section*.31}} -\newlabel{solution}{{}{17}{Solution Approach}{section*.31}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Solution Summary}{17}{section*.32}} -\newlabel{sumary}{{}{17}{Solution Summary}{section*.32}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data flow Overview}{17}{section*.33}} -\newlabel{data-flow}{{}{17}{Data flow Overview}{section*.33}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Packages, Tools and Techniques}{17}{section*.34}} -\newlabel{tools}{{}{17}{Packages, Tools and Techniques}{section*.34}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{System Design and Implementation}{18}{section*.35}} -\newlabel{implementation}{{}{18}{System Design and Implementation}{section*.35}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data collection}{18}{section*.36}} -\newlabel{collection}{{}{18}{Data collection}{section*.36}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-series Data}{18}{section*.37}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data processing}{18}{section*.38}} -\newlabel{processing}{{}{18}{Data processing}{section*.38}{}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Preprocessing}{18}{section*.39}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Filtering}{18}{section*.40}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Text Cleaning}{18}{section*.41}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Ngram based Language detection filtering}{18}{section*.42}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Spam Filtering}{18}{section*.43}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Processing}{18}{section*.44}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Naive Bayes model}{18}{section*.45}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{18}{section*.46}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{VADER}{18}{section*.47}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Recurrent Neural Network}{18}{section*.48}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Training and Testing Model}{18}{section*.49}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Validation}{18}{section*.50}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Future Prediction Forecasting}{18}{section*.51}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Testing: Verification and Reflection}{19}{section*.52}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Discussion: Contribution and Reflection}{20}{section*.53}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Limitations}{20}{section*.54}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Conclusion and Future Improvements}{21}{section*.55}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Conclusion}{21}{section*.56}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Improvements}{21}{section*.57}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Appendices}{24}{section*.59}} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix A - Project Initiation Document}{24}{section*.60}} +\abx@aux@segm{0}{0}{22} +\abx@aux@cite{23} +\abx@aux@segm{0}{0}{23} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{17}{section*.23}} +\newlabel{lstms}{{}{17}{Long-Short Term Memory (LSTM)}{section*.23}{}} +\abx@aux@segm{0}{0}{23} +\abx@aux@segm{0}{0}{22} +\abx@aux@segm{0}{0}{23} +\abx@aux@cite{24} +\abx@aux@segm{0}{0}{24} +\abx@aux@segm{0}{0}{22} +\abx@aux@cite{25} +\abx@aux@segm{0}{0}{25} +\abx@aux@segm{0}{0}{25} +\abx@aux@cite{26} +\abx@aux@segm{0}{0}{26} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Keras and TensorFlow}{18}{section*.24}} +\abx@aux@cite{27} +\abx@aux@segm{0}{0}{27} +\abx@aux@cite{28} +\abx@aux@segm{0}{0}{28} +\abx@aux@segm{0}{0}{28} +\abx@aux@segm{0}{0}{28} +\abx@aux@cite{29} +\abx@aux@segm{0}{0}{29} +\abx@aux@cite{30} +\abx@aux@segm{0}{0}{30} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Optimisers}{19}{section*.25}} +\abx@aux@cite{31} +\abx@aux@segm{0}{0}{31} +\abx@aux@segm{0}{0}{30} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Machine Learning}{20}{section*.26}} +\newlabel{machine}{{}{20}{Machine Learning}{section*.26}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Naive Bayes}{20}{section*.27}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Solution Approach}{22}{section*.28}} +\newlabel{solution}{{}{22}{Solution Approach}{section*.28}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Solution Summary}{22}{section*.29}} +\newlabel{sumary}{{}{22}{Solution Summary}{section*.29}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Requirements}{22}{section*.30}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data flow Overview}{22}{section*.31}} +\newlabel{data-flow}{{}{22}{Data flow Overview}{section*.31}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Packages, Tools and Techniques}{22}{section*.32}} +\newlabel{tools}{{}{22}{Packages, Tools and Techniques}{section*.32}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{System Design and Implementation}{23}{section*.33}} +\newlabel{implementation}{{}{23}{System Design and Implementation}{section*.33}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data collection}{23}{section*.34}} +\newlabel{collection}{{}{23}{Data collection}{section*.34}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Price Time-series Data}{23}{section*.35}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Data processing}{23}{section*.36}} +\newlabel{processing}{{}{23}{Data processing}{section*.36}{}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Preprocessing}{23}{section*.37}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Filtering}{23}{section*.38}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Text Cleaning}{23}{section*.39}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Ngram based Language detection filtering}{23}{section*.40}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Spam Filtering}{23}{section*.41}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Tweet Processing}{23}{section*.42}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {paragraph}{Naive Bayes model}{23}{section*.43}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Sentiment Analysis}{23}{section*.44}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{VADER}{23}{section*.45}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Recurrent Neural Network - LSTM}{23}{section*.46}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Training and Testing Model}{23}{section*.47}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Scoring and Validation}{23}{section*.48}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Future Prediction Forecasting}{23}{section*.49}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Testing: Verification and Reflection}{24}{section*.50}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Discussion: Contribution and Reflection}{25}{section*.51}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Limitations}{25}{section*.52}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Conclusion and Future Improvements}{26}{section*.53}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Conclusion}{26}{section*.54}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Future Improvements}{26}{section*.55}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Appendices}{29}{section*.57}} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix A - Project Initiation Document}{29}{section*.58}} \abx@aux@refcontextdefaultsdone \abx@aux@defaultrefcontext{0}{1}{none/global//global/global} \abx@aux@defaultrefcontext{0}{2}{none/global//global/global} @@ -187,4 +210,14 @@ \abx@aux@defaultrefcontext{0}{20}{none/global//global/global} \abx@aux@defaultrefcontext{0}{21}{none/global//global/global} \abx@aux@defaultrefcontext{0}{22}{none/global//global/global} -\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix B - Log book}{37}{section*.61}} +\abx@aux@defaultrefcontext{0}{23}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{24}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{25}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{26}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{27}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{28}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{29}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{30}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{31}{none/global//global/global} +\abx@aux@defaultrefcontext{0}{32}{none/global//global/global} +\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{Appendix B - Log book}{42}{section*.59}} diff --git a/document.bbl b/document.bbl index b378422..04f6158 100644 --- a/document.bbl +++ b/document.bbl @@ -68,6 +68,54 @@ \endverb \endentry \entry{2}{inproceedings}{} + \name{author}{4}{}{% + {{hash=2a4d4d42d154959e1209b3434c0f35d9}{% + family={Indera}, + familyi={I\bibinitperiod}, + given={NI}, + giveni={N\bibinitperiod}}}% + {{hash=8fb0b5be6a935472ae0bcdd819939ab6}{% + family={Yassin}, + familyi={Y\bibinitperiod}, + given={IM}, + giveni={I\bibinitperiod}}}% + {{hash=7cb88a77da50458ea2aea52631a903c8}{% + family={Zabidi}, + familyi={Z\bibinitperiod}, + given={A}, + giveni={A\bibinitperiod}}}% + {{hash=b98820abe300b0a83de77ca6f6f03eb8}{% + family={Rizman}, + familyi={R\bibinitperiod}, + given={ZI}, + giveni={Z\bibinitperiod}}}% + } + \list{organization}{1}{% + {University of El Oued}% + } + \strng{namehash}{daf4cf56937aa8d02febc08a6d0eeb84} + \strng{fullhash}{5dedba977c0a3609dbcbbe7a0cc798e5} + \strng{bibnamehash}{5dedba977c0a3609dbcbbe7a0cc798e5} + \strng{authorbibnamehash}{5dedba977c0a3609dbcbbe7a0cc798e5} + \strng{authornamehash}{daf4cf56937aa8d02febc08a6d0eeb84} + \strng{authorfullhash}{5dedba977c0a3609dbcbbe7a0cc798e5} + \field{sortinit}{2} + \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{Journal of Fundamental and Applied Sciences. Vol.35, No.35} + \field{title}{Non-linear autoregressive with exogeneous input (NARX) Bitcoin price prediction model using PSO-optimized parameters and moving average technical indicators} + \field{year}{2017} + \field{pages}{791\bibrangedash 808} + \range{pages}{18} + \verb{urlraw} + \verb https://www.ajol.info/index.php/jfas/article/viewFile/165614/155073 + \endverb + \verb{url} + \verb https://www.ajol.info/index.php/jfas/article/viewFile/165614/155073 + \endverb + \endentry + \entry{3}{inproceedings}{} \name{author}{1}{}{% {{hash=f2e3d1233a4ae1ff0dc165a2561130e0}{% family={Evita\bibnamedelima Stenqvist}, @@ -84,8 +132,8 @@ \strng{authorbibnamehash}{f2e3d1233a4ae1ff0dc165a2561130e0} \strng{authornamehash}{f2e3d1233a4ae1ff0dc165a2561130e0} \strng{authorfullhash}{f2e3d1233a4ae1ff0dc165a2561130e0} - \field{sortinit}{2} - \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{sortinit}{3} + \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Predicting Bitcoin price fluctuation with Twitter sentiment analysis} @@ -97,7 +145,37 @@ \verb http://www.diva-portal.org/smash/get/diva2:1110776/FULLTEXT01.pdf \endverb \endentry - \entry{3}{inproceedings}{} + \entry{4}{inproceedings}{} + \name{author}{1}{}{% + {{hash=a0717771b02f10aa6a33d0602f6288db}{% + family={Yalcin}, + familyi={Y\bibinitperiod}, + given={Orhan\bibnamedelima Gazi}, + giveni={O\bibinitperiod\bibinitdelim G\bibinitperiod}}}% + } + \list{organization}{1}{% + {Towards Data Science}% + } + \strng{namehash}{a0717771b02f10aa6a33d0602f6288db} + \strng{fullhash}{a0717771b02f10aa6a33d0602f6288db} + \strng{bibnamehash}{a0717771b02f10aa6a33d0602f6288db} + \strng{authorbibnamehash}{a0717771b02f10aa6a33d0602f6288db} + \strng{authornamehash}{a0717771b02f10aa6a33d0602f6288db} + \strng{authorfullhash}{a0717771b02f10aa6a33d0602f6288db} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Predict Tomorrows Bitcoin (BTC) Price with Recurrent Neural Networks} + \field{year}{2018} + \verb{urlraw} + \verb https://towardsdatascience.com/using-recurrent-neural-networks-to-predict-bitcoin-btc-prices-c4ff70f9f3e4 + \endverb + \verb{url} + \verb https://towardsdatascience.com/using-recurrent-neural-networks-to-predict-bitcoin-btc-prices-c4ff70f9f3e4 + \endverb + \endentry + \entry{5}{inproceedings}{} \name{author}{1}{}{% {{hash=0082b92db99b10a1b0be2e2a81ee914f}{% family={Intel-Corporation}, @@ -112,8 +190,8 @@ \strng{authorbibnamehash}{0082b92db99b10a1b0be2e2a81ee914f} \strng{authornamehash}{0082b92db99b10a1b0be2e2a81ee914f} \strng{authorfullhash}{0082b92db99b10a1b0be2e2a81ee914f} - \field{sortinit}{4} - \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{sortinit}{8} + \field{sortinithash}{07edf88d4ea82509b9c4b4d13f41c452} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Stock Predictions through News Sentiment Analysis} @@ -125,7 +203,7 @@ \verb https://www.codeproject.com/Articles/1201444/Stock-Predictions-through-News-Sentiment-Analysis \endverb \endentry - \entry{4}{inproceedings}{} + \entry{6}{inproceedings}{} \name{author}{1}{}{% {{hash=be03763696a3a6a39ccce2baf4fb6f4e}{% family={Sean\bibnamedelima McNally}, @@ -144,8 +222,8 @@ \strng{authorbibnamehash}{be03763696a3a6a39ccce2baf4fb6f4e} \strng{authornamehash}{be03763696a3a6a39ccce2baf4fb6f4e} \strng{authorfullhash}{be03763696a3a6a39ccce2baf4fb6f4e} - \field{sortinit}{5} - \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} + \field{sortinit}{9} + \field{sortinithash}{1dd72ab054147731c9d824b49aba0534} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{booktitle}{2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP)} @@ -160,7 +238,7 @@ \verb https://ieeexplore.ieee.org/abstract/document/8374483 \endverb \endentry - \entry{5}{inproceedings}{} + \entry{7}{inproceedings}{} \name{author}{1}{}{% {{hash=2491bc9c7d8731e1ae33124093bc7026}{% family={Twitter}, @@ -175,8 +253,8 @@ \strng{authorbibnamehash}{2491bc9c7d8731e1ae33124093bc7026} \strng{authornamehash}{2491bc9c7d8731e1ae33124093bc7026} \strng{authorfullhash}{2491bc9c7d8731e1ae33124093bc7026} - \field{sortinit}{6} - \field{sortinithash}{57e57fb8451e7fcfa45d1e069f6d3136} + \field{sortinit}{1} + \field{sortinithash}{2174f786c6195e7fe2ee1c229b416e29} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Search Tweets} @@ -188,7 +266,7 @@ \verb https://developer.twitter.com/en/docs/tweets/search/overview \endverb \endentry - \entry{6}{inproceedings}{} + \entry{8}{inproceedings}{} \name{author}{1}{}{% {{hash=2491bc9c7d8731e1ae33124093bc7026}{% family={Twitter}, @@ -203,8 +281,8 @@ \strng{authorbibnamehash}{2491bc9c7d8731e1ae33124093bc7026} \strng{authornamehash}{2491bc9c7d8731e1ae33124093bc7026} \strng{authorfullhash}{2491bc9c7d8731e1ae33124093bc7026} - \field{sortinit}{7} - \field{sortinithash}{c818dd9105a2852444fc9f5e145c294e} + \field{sortinit}{1} + \field{sortinithash}{2174f786c6195e7fe2ee1c229b416e29} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Consuming streaming data} @@ -216,7 +294,7 @@ \verb https://developer.twitter.com/en/docs/tutorials/consuming-streaming-data.html \endverb \endentry - \entry{7}{inproceedings}{} + \entry{9}{inproceedings}{} \name{author}{1}{}{% {{hash=1e48a059b3f2c3703bea8d54a9e002c9}{% family={Roesslein}, @@ -233,8 +311,8 @@ \strng{authorbibnamehash}{1e48a059b3f2c3703bea8d54a9e002c9} \strng{authornamehash}{1e48a059b3f2c3703bea8d54a9e002c9} \strng{authorfullhash}{1e48a059b3f2c3703bea8d54a9e002c9} - \field{sortinit}{8} - \field{sortinithash}{07edf88d4ea82509b9c4b4d13f41c452} + \field{sortinit}{1} + \field{sortinithash}{2174f786c6195e7fe2ee1c229b416e29} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Streaming With Tweepy} @@ -246,7 +324,7 @@ \verb http://docs.tweepy.org/en/v3.4.0/streaming_how_to.html \endverb \endentry - \entry{8}{inproceedings}{} + \entry{10}{inproceedings}{} \name{author}{1}{}{% {{hash=ae1fc492a61542a18835322c490c5af1}{% family={Mehrnoush\bibnamedelima Shamsfard}, @@ -279,7 +357,7 @@ \verb https://www.sciencedirect.com/science/article/pii/S1532046415001276 \endverb \endentry - \entry{9}{inproceedings}{} + \entry{11}{inproceedings}{} \name{author}{1}{}{% {{hash=75d8d9e701bff6c60b3e05aa6c0c3f9f}{% family={Chedia\bibnamedelima Dhaoui}, @@ -312,7 +390,7 @@ \verb https://www.emeraldinsight.com/doi/pdfplus/10.1108/JCM-03-2017-2141 \endverb \endentry - \entry{10}{inproceedings}{} + \entry{12}{inproceedings}{} \name{author}{2}{}{% {{hash=45764413ab79a1c3696604be19148c89}{% family={Hutto}, @@ -348,7 +426,7 @@ \verb https://www.aaai.org/ocs/index.php/ICWSM/ICWSM14/paper/download/8109/8122 \endverb \endentry - \entry{11}{inproceedings}{} + \entry{13}{inproceedings}{} \name{author}{1}{}{% {{hash=47a5d7268039bf86cea626bcaefd4877}{% family={Kenton}, @@ -365,8 +443,8 @@ \strng{authorbibnamehash}{47a5d7268039bf86cea626bcaefd4877} \strng{authornamehash}{47a5d7268039bf86cea626bcaefd4877} \strng{authorfullhash}{47a5d7268039bf86cea626bcaefd4877} - \field{sortinit}{1} - \field{sortinithash}{2174f786c6195e7fe2ee1c229b416e29} + \field{sortinit}{2} + \field{sortinithash}{cbff857e587bcb4635511624d773949e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Wisdom of Crowds} @@ -378,7 +456,7 @@ \verb https://www.investopedia.com/terms/w/wisdom-crowds.asp \endverb \endentry - \entry{12}{inproceedings}{} + \entry{14}{inproceedings}{} \name{author}{1}{}{% {{hash=98de2b3b288cf4bd291e8937e5e28c49}{% family={Skymind}, @@ -407,7 +485,7 @@ \verb https://skymind.ai/wiki/neural-network \endverb \endentry - \entry{13}{inproceedings}{} + \entry{15}{inproceedings}{} \name{author}{1}{}{% {{hash=b5590c43c6c12766886d1cdcae8c5fc3}{% family={DeMuro}, @@ -438,7 +516,7 @@ \verb https://www.techradar.com/uk/news/what-is-a-neural-network \endverb \endentry - \entry{14}{inproceedings}{} + \entry{16}{inproceedings}{} \name{author}{1}{}{% {{hash=7ec8fd610c35dade82ca0d76c0e6a7ee}{% family={Bach}, @@ -472,7 +550,7 @@ \endverb \warn{\item Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name} \endentry - \entry{15}{inproceedings}{} + \entry{17}{inproceedings}{} \name{author}{3}{}{% {{hash=d198ae71c61c758b90826c452447133f}{% family={Rumelhart}, @@ -499,8 +577,8 @@ \strng{authorbibnamehash}{6c0c2652b5e4e9258c40ce50c5704c6b} \strng{authornamehash}{6c0c2652b5e4e9258c40ce50c5704c6b} \strng{authorfullhash}{6c0c2652b5e4e9258c40ce50c5704c6b} - \field{sortinit}{2} - \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{sortinit}{3} + \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Learning internal representations by error propagation} @@ -512,7 +590,7 @@ \verb https://apps.dtic.mil/docs/citations/ADA164453 \endverb \endentry - \entry{16}{inproceedings}{} + \entry{18}{inproceedings}{} \name{author}{1}{}{% {{hash=98de2b3b288cf4bd291e8937e5e28c49}{% family={Skymind}, @@ -527,8 +605,8 @@ \strng{authorbibnamehash}{98de2b3b288cf4bd291e8937e5e28c49} \strng{authornamehash}{98de2b3b288cf4bd291e8937e5e28c49} \strng{authorfullhash}{98de2b3b288cf4bd291e8937e5e28c49} - \field{sortinit}{2} - \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{sortinit}{3} + \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{booktitle}{A.I. Wiki} @@ -541,7 +619,7 @@ \verb https://skymind.ai/wiki/lstm \endverb \endentry - \entry{17}{inproceedings}{} + \entry{19}{inproceedings}{} \name{author}{1}{}{% {{hash=ad6e7c0188bc1f913c6dad630fde9e39}{% family={Donges}, @@ -558,8 +636,8 @@ \strng{authorbibnamehash}{ad6e7c0188bc1f913c6dad630fde9e39} \strng{authornamehash}{ad6e7c0188bc1f913c6dad630fde9e39} \strng{authorfullhash}{ad6e7c0188bc1f913c6dad630fde9e39} - \field{sortinit}{2} - \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{sortinit}{3} + \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Recurrent Neural Networks and LSTM} @@ -571,7 +649,7 @@ \verb https://towardsdatascience.com/recurrent-neural-networks-and-lstm-4b601dd822a5 \endverb \endentry - \entry{18}{inproceedings}{} + \entry{20}{inproceedings}{} \name{author}{1}{}{% {{hash=37ec6490760a0f7d5715b2e904f6cf20}{% family={Jason\bibnamedelima Brownlee}, @@ -588,8 +666,8 @@ \strng{authorbibnamehash}{37ec6490760a0f7d5715b2e904f6cf20} \strng{authornamehash}{37ec6490760a0f7d5715b2e904f6cf20} \strng{authorfullhash}{37ec6490760a0f7d5715b2e904f6cf20} - \field{sortinit}{2} - \field{sortinithash}{cbff857e587bcb4635511624d773949e} + \field{sortinit}{3} + \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{A Gentle Introduction to Exploding Gradients in Neural Networks} @@ -601,7 +679,7 @@ \verb https://machinelearningmastery.com/exploding-gradients-in-neural-networks/ \endverb \endentry - \entry{19}{inproceedings}{} + \entry{21}{inproceedings}{} \name{author}{1}{}{% {{hash=2397822f564bc95b5d3e07a3cc633029}{% family={Team}, @@ -631,7 +709,7 @@ \verb https://www.superdatascience.com/blogs/recurrent-neural-networks-rnn-the-vanishing-gradient-problem \endverb \endentry - \entry{20}{inproceedings}{} + \entry{22}{inproceedings}{} \name{author}{2}{}{% {{hash=41b31e29fb2bdbf9f5c9c1b0d5b3e815}{% family={Hochreiter}, @@ -669,7 +747,7 @@ \verb https://www.bioinf.jku.at/publications/older/2604.pdf \endverb \endentry - \entry{21}{inproceedings}{} + \entry{23}{inproceedings}{} \name{author}{1}{}{% {{hash=9979e7c606c1876cb09cf32b78628d71}{% family={Yan}, @@ -699,7 +777,7 @@ \verb https://medium.com/mlreview/understanding-lstm-and-its-diagrams-37e2f46f1714 \endverb \endentry - \entry{22}{inproceedings}{} + \entry{24}{inproceedings}{} \name{author}{1}{}{% {{hash=dea937fb216bfbba25c1bfa1f36a63fe}{% family={Olah}, @@ -713,8 +791,8 @@ \strng{authorbibnamehash}{dea937fb216bfbba25c1bfa1f36a63fe} \strng{authornamehash}{dea937fb216bfbba25c1bfa1f36a63fe} \strng{authorfullhash}{dea937fb216bfbba25c1bfa1f36a63fe} - \field{sortinit}{3} - \field{sortinithash}{a4b52e5432884761f50fb9571273b93e} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} \field{labelnamesource}{author} \field{labeltitlesource}{title} \field{title}{Understanding LSTM Networks} @@ -726,6 +804,301 @@ \verb https://colah.github.io/posts/2015-08-Understanding-LSTMs \endverb \endentry + \entry{25}{inproceedings}{} + \name{author}{1}{}{% + {{hash=7b57587d26dd7e449dd94fd493bd072e}{% + family={Kompella}, + familyi={K\bibinitperiod}, + given={Ravindra}, + giveni={R\bibinitperiod}}}% + } + \list{organization}{1}{% + {Towards Data Science}% + } + \strng{namehash}{7b57587d26dd7e449dd94fd493bd072e} + \strng{fullhash}{7b57587d26dd7e449dd94fd493bd072e} + \strng{bibnamehash}{7b57587d26dd7e449dd94fd493bd072e} + \strng{authorbibnamehash}{7b57587d26dd7e449dd94fd493bd072e} + \strng{authornamehash}{7b57587d26dd7e449dd94fd493bd072e} + \strng{authorfullhash}{7b57587d26dd7e449dd94fd493bd072e} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Using LSTMs to forecast time-series} + \field{year}{2018} + \verb{urlraw} + \verb https://towardsdatascience.com/using-lstms-to-forecast-time-series-4ab688386b1f + \endverb + \verb{url} + \verb https://towardsdatascience.com/using-lstms-to-forecast-time-series-4ab688386b1f + \endverb + \endentry + \entry{26}{inproceedings}{} + \true{moreauthor} + \true{morelabelname} + \name{author}{10}{}{% + {{hash=f39ffee58f8a71d84d8b13c05804b2cc}{% + family={Abadi}, + familyi={A\bibinitperiod}, + given={Martin}, + giveni={M\bibinitperiod}}}% + {{hash=08cf514c08137f94d73b590060797f5b}{% + family={Barham}, + familyi={B\bibinitperiod}, + given={Paul}, + giveni={P\bibinitperiod}}}% + {{hash=f756003cc97f5981d94995af3bd6862b}{% + family={Chen}, + familyi={C\bibinitperiod}, + given={Jianmin}, + giveni={J\bibinitperiod}}}% + {{hash=c0d10aaf985cebf8d0497e1828f9313f}{% + family={Chen}, + familyi={C\bibinitperiod}, + given={Zhifeng}, + giveni={Z\bibinitperiod}}}% + {{hash=a4c859221cc41e2db6d63b486f955ba2}{% + family={Davis}, + familyi={D\bibinitperiod}, + given={Andy}, + giveni={A\bibinitperiod}}}% + {{hash=4aecfb0cc2e1e3b7899129fa2a94e2b8}{% + family={Dean}, + familyi={D\bibinitperiod}, + given={Jeffrey}, + giveni={J\bibinitperiod}}}% + {{hash=bd7f88635b51bc5abb3d5a2cab967724}{% + family={Devin}, + familyi={D\bibinitperiod}, + given={Matthieu}, + giveni={M\bibinitperiod}}}% + {{hash=193bcec5240237591ad8fb697869f013}{% + family={Ghemawat}, + familyi={G\bibinitperiod}, + given={Sanjay}, + giveni={S\bibinitperiod}}}% + {{hash=edc6964c6549e1839ca94d3d61e03f76}{% + family={Irving}, + familyi={I\bibinitperiod}, + given={Geoffrey}, + giveni={G\bibinitperiod}}}% + {{hash=3b62e7eedeec9f7a7f7f3c3ec88637f1}{% + family={Isard}, + familyi={I\bibinitperiod}, + given={Michael}, + giveni={M\bibinitperiod}}}% + } + \strng{namehash}{b31f3ca11dddb24e6b0c63e696a45964} + \strng{fullhash}{cc9892165155439016b19b3aff73bf28} + \strng{bibnamehash}{cc9892165155439016b19b3aff73bf28} + \strng{authorbibnamehash}{cc9892165155439016b19b3aff73bf28} + \strng{authornamehash}{b31f3ca11dddb24e6b0c63e696a45964} + \strng{authorfullhash}{cc9892165155439016b19b3aff73bf28} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{12th Symposium on Operating Systems Design and Implementation 16)} + \field{title}{Tensorflow: A system for large-scale machine learning} + \field{year}{2016} + \field{pages}{265\bibrangedash 283} + \range{pages}{19} + \verb{urlraw} + \verb https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf + \endverb + \verb{url} + \verb https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf + \endverb + \endentry + \entry{27}{inproceedings}{} + \name{author}{1}{}{% + {{hash=45ebe6bd838f67040a398bf6fd40841d}{% + family={Stanford}, + familyi={S\bibinitperiod}}}% + } + \strng{namehash}{45ebe6bd838f67040a398bf6fd40841d} + \strng{fullhash}{45ebe6bd838f67040a398bf6fd40841d} + \strng{bibnamehash}{45ebe6bd838f67040a398bf6fd40841d} + \strng{authorbibnamehash}{45ebe6bd838f67040a398bf6fd40841d} + \strng{authornamehash}{45ebe6bd838f67040a398bf6fd40841d} + \strng{authorfullhash}{45ebe6bd838f67040a398bf6fd40841d} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{UFLDL Tutorial} + \field{title}{Optimization: Stochastic Gradient Descent} + \verb{urlraw} + \verb http://deeplearning.stanford.edu/tutorial/supervised/OptimizationStochasticGradientDescent + \endverb + \verb{url} + \verb http://deeplearning.stanford.edu/tutorial/supervised/OptimizationStochasticGradientDescent + \endverb + \endentry + \entry{28}{inproceedings}{} + \name{author}{1}{}{% + {{hash=cec3f268402d95f21749575ae2e51941}{% + family={Mitra}, + familyi={M\bibinitperiod}, + given={Rajarshee}, + giveni={R\bibinitperiod}}}% + } + \list{organization}{1}{% + {Quora}% + } + \strng{namehash}{cec3f268402d95f21749575ae2e51941} + \strng{fullhash}{cec3f268402d95f21749575ae2e51941} + \strng{bibnamehash}{cec3f268402d95f21749575ae2e51941} + \strng{authorbibnamehash}{cec3f268402d95f21749575ae2e51941} + \strng{authornamehash}{cec3f268402d95f21749575ae2e51941} + \strng{authorfullhash}{cec3f268402d95f21749575ae2e51941} + \field{sortinit}{4} + \field{sortinithash}{11cdaee3b18e01d77f3f428b13c1fc76} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{What are differences between update rules like AdaDelta, RMSProp, AdaGrad, and Adam} + \field{year}{2016} + \verb{urlraw} + \verb https://www.quora.com/What-are-differences-between-update-rules-like-AdaDelta-RMSProp-AdaGrad-and-AdaM + \endverb + \verb{url} + \verb https://www.quora.com/What-are-differences-between-update-rules-like-AdaDelta-RMSProp-AdaGrad-and-AdaM + \endverb + \endentry + \entry{29}{inproceedings}{} + \name{author}{2}{}{% + {{hash=ce674b69f5902bcf643d2e5e3b08dd23}{% + family={Mukkamala}, + familyi={M\bibinitperiod}, + given={Mahesh\bibnamedelima Chandra}, + giveni={M\bibinitperiod\bibinitdelim C\bibinitperiod}}}% + {{hash=9e3f4c60354fda4d9127485afba87230}{% + family={Hein}, + familyi={H\bibinitperiod}, + given={Matthias}, + giveni={M\bibinitperiod}}}% + } + \list{organization}{1}{% + {JMLR.org}% + } + \strng{namehash}{c691bd5abb6bb43a969220eea3e851ec} + \strng{fullhash}{c691bd5abb6bb43a969220eea3e851ec} + \strng{bibnamehash}{c691bd5abb6bb43a969220eea3e851ec} + \strng{authorbibnamehash}{c691bd5abb6bb43a969220eea3e851ec} + \strng{authornamehash}{c691bd5abb6bb43a969220eea3e851ec} + \strng{authorfullhash}{c691bd5abb6bb43a969220eea3e851ec} + \field{sortinit}{5} + \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{Proceedings of the 34th International Conference on Machine Learning-Volume 70} + \field{title}{Variants of rmsprop and adagrad with logarithmic regret bounds} + \field{year}{2017} + \field{pages}{2545\bibrangedash 2553} + \range{pages}{9} + \verb{urlraw} + \verb https://arxiv.org/pdf/1706.05507.pdf + \endverb + \verb{url} + \verb https://arxiv.org/pdf/1706.05507.pdf + \endverb + \endentry + \entry{30}{inproceedings}{} + \name{author}{1}{}{% + {{hash=fd768606d546daa3f555605b7786517f}{% + family={Khandelwal}, + familyi={K\bibinitperiod}, + given={Renu}, + giveni={R\bibinitperiod}}}% + } + \list{organization}{1}{% + {Medium}% + } + \strng{namehash}{fd768606d546daa3f555605b7786517f} + \strng{fullhash}{fd768606d546daa3f555605b7786517f} + \strng{bibnamehash}{fd768606d546daa3f555605b7786517f} + \strng{authorbibnamehash}{fd768606d546daa3f555605b7786517f} + \strng{authornamehash}{fd768606d546daa3f555605b7786517f} + \strng{authorfullhash}{fd768606d546daa3f555605b7786517f} + \field{sortinit}{5} + \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{title}{Overview of different Optimizers for neural networks} + \field{year}{2019} + \verb{urlraw} + \verb https://medium.com/datadriveninvestor/overview-of-different-optimizers-for-neural-networks-e0ed119440c3 + \endverb + \verb{url} + \verb https://medium.com/datadriveninvestor/overview-of-different-optimizers-for-neural-networks-e0ed119440c3 + \endverb + \endentry + \entry{31}{inproceedings}{} + \name{author}{1}{}{% + {{hash=2d6d5b61ff3872dbfed3eb5cbb52e470}{% + family={Diederik\bibnamedelimb P.\bibnamedelimi Kingma}, + familyi={D\bibinitperiod\bibinitdelim P\bibinitperiod\bibinitdelim K\bibinitperiod}, + given={Jimmy\bibnamedelimb Lei\bibnamedelima Ba}, + giveni={J\bibinitperiod\bibinitdelim L\bibinitperiod\bibinitdelim B\bibinitperiod}}}% + } + \list{organization}{1}{% + {arXiv}% + } + \strng{namehash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \strng{fullhash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \strng{bibnamehash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \strng{authorbibnamehash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \strng{authornamehash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \strng{authorfullhash}{2d6d5b61ff3872dbfed3eb5cbb52e470} + \field{sortinit}{5} + \field{sortinithash}{3c19c3776b658b3558e9e2e4840c01e2} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{arXiv preprint arXiv:1412.6980} + \field{title}{Adam: A method for Stochastic Optimization} + \field{year}{2014} + \verb{urlraw} + \verb https://arxiv.org/pdf/1412.6980.pdf + \endverb + \verb{url} + \verb https://arxiv.org/pdf/1412.6980.pdf + \endverb + \endentry + \entry{32}{inproceedings}{} + \true{moreauthor} + \true{morelabelname} + \name{author}{1}{}{% + {{hash=7711557abf7c3d508d1fa84cab27626e}{% + family={Rish}, + familyi={R\bibinitperiod}, + given={Irina}, + giveni={I\bibinitperiod}}}% + } + \strng{namehash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \strng{fullhash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \strng{bibnamehash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \strng{authorbibnamehash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \strng{authornamehash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \strng{authorfullhash}{baa9695b2bf77f7b33bb07b5d116d7e1} + \field{sortinit}{8} + \field{sortinithash}{07edf88d4ea82509b9c4b4d13f41c452} + \field{labelnamesource}{author} + \field{labeltitlesource}{title} + \field{booktitle}{IJCAI 2001 workshop on empirical methods in artificial intelligence} + \field{number}{22} + \field{title}{An empirical study of the naive Bayes classifier} + \field{volume}{3} + \field{year}{2001} + \field{pages}{41\bibrangedash 46} + \range{pages}{6} + \verb{urlraw} + \verb https://www.cc.gatech.edu/~isbell/reading/papers/Rish.pdf + \endverb + \verb{url} + \verb https://www.cc.gatech.edu/~isbell/reading/papers/Rish.pdf + \endverb + \endentry \enddatalist \endrefsection \endinput diff --git a/document.bcf b/document.bcf index ba3e87b..7611244 100644 --- a/document.bcf +++ b/document.bcf @@ -1926,41 +1926,57 @@ 1 2 - 1 - 3 - 4 - 5 - 6 - 7 + 3 + 4 + 1 + 3 + 1 + 5 6 - 1 - 2 - 4 - 8 - 9 - 10 - 10 + 7 + 8 + 9 + 7 + 1 + 3 + 6 10 11 - 10 - 10 - 10 - 12 - 13 - 14 - 13 - 15 - 16 - 17 - 18 - 19 - 20 - 20 - 21 + 12 + 12 + 12 + 13 + 12 + 12 + 12 + 14 + 15 + 16 + 15 + 17 + 18 + 19 + 20 21 - 20 - 21 - 22 + 22 + 22 + 23 + 23 + 22 + 23 + 24 + 22 + 25 + 25 + 26 + 27 + 28 + 28 + 28 + 29 + 30 + 31 + 30 * diff --git a/document.blg b/document.blg index 6805804..fc06e6e 100644 --- a/document.blg +++ b/document.blg @@ -1,20 +1,20 @@ [0] Config.pm:302> INFO - This is Biber 2.9 [0] Config.pm:305> INFO - Logfile is 'document.blg' -[20] biber:313> INFO - === Sun Apr 21, 2019, 23:13:10 -[35] Biber.pm:371> INFO - Reading 'document.bcf' -[81] Biber.pm:854> INFO - Using all citekeys in bib section 0 -[90] Biber.pm:3981> INFO - Processing section 0 -[98] Biber.pm:4154> INFO - Looking for bibtex format file 'report.bib' for section 0 -[99] bibtex.pm:1468> INFO - LaTeX decoding ... -[118] bibtex.pm:1294> INFO - Found BibTeX data source 'report.bib' -[125] Utils.pm:169> WARN - year field 'Mar 13, 2016' in entry '21' is not an integer - this will probably not sort properly. -[179] Utils.pm:169> WARN - Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name -[180] Utils.pm:169> WARN - BibTeX subsystem: warning: comma(s) at end of name (removing) -[180] Utils.pm:169> WARN - BibTeX subsystem: author, warning: comma(s) at end of name (removing) -[194] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' -[194] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' -[194] Biber.pm:3809> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' -[194] Biber.pm:3815> INFO - No sort tailoring available for locale 'en-US' -[208] bbl.pm:617> INFO - Writing 'document.bbl' with encoding 'ascii' -[216] bbl.pm:720> INFO - Output to document.bbl -[216] Biber.pm:110> INFO - WARNINGS: 4 +[18] biber:313> INFO - === Tue Apr 23, 2019, 18:58:50 +[34] Biber.pm:371> INFO - Reading 'document.bcf' +[79] Biber.pm:854> INFO - Using all citekeys in bib section 0 +[88] Biber.pm:3981> INFO - Processing section 0 +[96] Biber.pm:4154> INFO - Looking for bibtex format file 'report.bib' for section 0 +[97] bibtex.pm:1468> INFO - LaTeX decoding ... +[124] bibtex.pm:1294> INFO - Found BibTeX data source 'report.bib' +[167] Utils.pm:169> WARN - year field 'Mar 13, 2016' in entry '23' is not an integer - this will probably not sort properly. +[199] Utils.pm:169> WARN - Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name +[228] Utils.pm:169> WARN - BibTeX subsystem: warning: comma(s) at end of name (removing) +[228] Utils.pm:169> WARN - BibTeX subsystem: author, warning: comma(s) at end of name (removing) +[245] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' +[245] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' +[245] Biber.pm:3809> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'en-US' +[245] Biber.pm:3815> INFO - No sort tailoring available for locale 'en-US' +[262] bbl.pm:617> INFO - Writing 'document.bbl' with encoding 'ascii' +[273] bbl.pm:720> INFO - Output to document.bbl +[273] Biber.pm:110> INFO - WARNINGS: 4 diff --git a/document.log b/document.log index 72b1719..b27cb0c 100644 --- a/document.log +++ b/document.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.10.16) 21 APR 2019 23:14 +This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2018.10.16) 23 APR 2019 20:26 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -921,7 +921,7 @@ Package biblatex Info: ... file 'document.bbl' found. (./document.bbl Package biblatex Warning: Biber reported the following issues -(biblatex) with '14': +(biblatex) with '16': (biblatex) - Name "Mairal, J., Ponce, J., Sapiro, G., Zisserman, A." has too many commas: skipping name. @@ -945,7 +945,7 @@ LaTeX Info: Redefining \nameref on input line 63. \@outlinefile=\write5 \openout5 = `document.out'. - + File: images/reading_logo.png Graphic file (type png) Package pdftex.def Info: images/reading_logo.png used on input line 66. @@ -967,59 +967,99 @@ File: umsb.fd 2013/01/14 v3.01 AMS symbols B \tf@toc=\write6 \openout6 = `document.toc'. - [5] [6] [7] [8] [9] -LaTeX Font Info: Try loading font information for OMS+cmr on input line 199. + [5] [6] [7] +LaTeX Font Info: Try loading font information for OMS+cmr on input line 162. (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 199. - [10] [11] +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 162. + [8] [9] +Underfull \hbox (badness 10000) in paragraph at lines 178--180 + + [] + Missing character: There is no â in font cmr10! Missing character: There is no € in font cmr10! Missing character: There is no ™ in font cmr10! - + +Underfull \hbox (badness 10000) in paragraph at lines 187--189 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 197--199 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 207--209 + + [] + +[10] +Underfull \hbox (badness 10000) in paragraph at lines 216--218 + + [] + +[11] [12] [13] [14] +Missing character: There is no â in font cmr10! +Missing character: There is no € in font cmr10! +Missing character: There is no ™ in font cmr10! + File: images/perceptron.png Graphic file (type png) -Package pdftex.def Info: images/perceptron.png used on input line 237. +Package pdftex.def Info: images/perceptron.png used on input line 302. (pdftex.def) Requested size: 284.52713pt x 170.72142pt. - [12] - + [15] + File: images/rnn_ffn.png Graphic file (type png) -Package pdftex.def Info: images/rnn_ffn.png used on input line 257. +Package pdftex.def Info: images/rnn_ffn.png used on input line 322. (pdftex.def) Requested size: 426.80307pt x 170.72112pt. - -[13 <./images/perceptron.png>] - + [16 <./images/perceptron.png>] + File: images/lstm.png Graphic file (type png) -Package pdftex.def Info: images/lstm.png used on input line 275. -(pdftex.def) Requested size: 284.52357pt x 227.62pt. - [14 <./images/rnn_ffn.png>] [15 <./images/lstm.png>] [16] [17] [18] [19] [20] -[21] -Overfull \hbox (1.46323pt too wide) in paragraph at lines 367--367 +Package pdftex.def Info: images/lstm.png used on input line 340. +(pdftex.def) Requested size: 256.07123pt x 199.1616pt. + [17 <./images/rnn_ffn.png>] [18 <./images/lstm.png>] +Missing character: There is no â in font cmr10! +Missing character: There is no € in font cmr10! +Missing character: There is no ™ in font cmr10! + [19] +Missing character: There is no â in font cmr10! +Missing character: There is no € in font cmr10! +Missing character: There is no ™ in font cmr10! + [20] [21] [22] [23] [24] [25] [26] +Overfull \hbox (1.46323pt too wide) in paragraph at lines 513--513 \OT1/cmr/m/n/10 [On-line]. Avail-able: []$\OT1/cmtt/m/n/10 https : / / www . co deproject . com / Articles / 1201444 / Stock -[] Predictions -[] [] - -Overfull \hbox (22.26572pt too wide) in paragraph at lines 367--367 +[27] +Overfull \hbox (22.26572pt too wide) in paragraph at lines 513--513 \OT1/cmr/m/n/10 able: []$\OT1/cmtt/m/n/10 https : / / towardsdatascience . com / recurrent -[] neural -[] networks -[] and -[] lstm -[] 4b601dd822a5$[]\OT1/cm r/m/n/10 . [] -[22] [23] + +Overfull \hbox (59.98181pt too wide) in paragraph at lines 513--513 +[]$\OT1/cmtt/m/n/10 http : / / deeplearning . stanford . edu / tutorial / super +vised / OptimizationStochasticGradientDescent$[]\OT1/cmr/m/n/10 . + [] + +[28] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf used on input line 372. +Package pdftex.def Info: PID.pdf used on input line 518. (pdftex.def) Requested size: 597.551pt x 845.07512pt. @@ -1027,7 +1067,7 @@ pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf used on input line 372. +Package pdftex.def Info: PID.pdf used on input line 518. (pdftex.def) Requested size: 597.551pt x 845.07512pt. @@ -1037,250 +1077,253 @@ rsion <1.7>, but at most version <1.5> allowed pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 372. +Package pdftex.def Info: PID.pdf , page1 used on input line 518. (pdftex.def) Requested size: 597.551pt x 845.07512pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 372. +Package pdftex.def Info: PID.pdf , page1 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[24] +[29] File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 372. +Package pdftex.def Info: PID.pdf , page1 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 372. +Package pdftex.def Info: PID.pdf , page1 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page1 used on input line 372. +Package pdftex.def Info: PID.pdf , page1 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. - [25 <./PID.pdf>] + [30 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 372. +Package pdftex.def Info: PID.pdf , page2 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 372. +Package pdftex.def Info: PID.pdf , page2 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) -Package pdftex.def Info: PID.pdf , page2 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[26 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page3 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[27 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page4 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[28 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page5 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[29 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page6 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -[30 <./PID.pdf>] - -pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve -rsion <1.7>, but at most version <1.5> allowed - -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 372. -(pdftex.def) Requested size: 562.1644pt x 795.0303pt. -File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page7 used on input line 372. +Package pdftex.def Info: PID.pdf , page2 used on input line 518. (pdftex.def) Requested size: 562.1644pt x 795.0303pt. [31 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page3 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page3 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page8 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page3 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [32 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page4 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page4 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page9 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page4 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [33 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page5 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page5 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page10 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page5 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [34 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page11 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page6 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [35 <./PID.pdf>] pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve rsion <1.7>, but at most version <1.5> allowed - + File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. File: PID.pdf Graphic file (type pdf) - -Package pdftex.def Info: PID.pdf , page12 used on input line 372. -(pdftex.def) Requested size: 795.0303pt x 562.1644pt. + +Package pdftex.def Info: PID.pdf , page7 used on input line 518. +(pdftex.def) Requested size: 562.1644pt x 795.0303pt. [36 <./PID.pdf>] -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 376. - [37] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 376. + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page8 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page8 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page8 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[37 <./PID.pdf>] + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page9 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page9 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page9 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[38 <./PID.pdf>] + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page10 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page10 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page10 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[39 <./PID.pdf>] + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page11 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[40 <./PID.pdf>] + +pdfTeX warning: /usr/bin/pdflatex (file ./PID.pdf): PDF inclusion: found PDF ve +rsion <1.7>, but at most version <1.5> allowed + +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +File: PID.pdf Graphic file (type pdf) + +Package pdftex.def Info: PID.pdf , page12 used on input line 518. +(pdftex.def) Requested size: 795.0303pt x 562.1644pt. +[41 <./PID.pdf>] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 522. + [42] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 522. (./document.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 376. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 376. +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 522. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 522. Package rerunfilecheck Info: File `document.out' has not changed. -(rerunfilecheck) Checksum: 30CCF589C480B87162EBF723A1651341;8362. +(rerunfilecheck) Checksum: 1575550D93C69B4B975FC1E3D35A05EF;8249. Package logreq Info: Writing requests to 'document.run.xml'. \openout1 = `document.run.xml'. ) Here is how much of TeX's memory you used: - 22430 strings out of 492982 - 354743 string characters out of 6134895 - 844942 words of memory out of 5000000 - 25551 multiletter control sequences out of 15000+600000 + 22461 strings out of 492982 + 355520 string characters out of 6134895 + 846942 words of memory out of 5000000 + 25569 multiletter control sequences out of 15000+600000 12017 words of font info for 47 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 45i,18n,67p,2008b,1300s stack positions out of 5000i,500n,10000p,200000b,80000s + 45i,18n,67p,2008b,1302s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on document.pdf (37 pages, 522816 bytes). +e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb> +Output written on document.pdf (42 pages, 582267 bytes). PDF statistics: - 689 PDF objects out of 1000 (max. 8388607) - 605 compressed objects within 7 object streams - 121 named destinations out of 1000 (max. 500000) - 528 words of extra memory for PDF output out of 10000 (max. 10000000) + 760 PDF objects out of 1000 (max. 8388607) + 667 compressed objects within 7 object streams + 134 named destinations out of 1000 (max. 500000) + 512 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/document.out b/document.out index e87d778..a0d6e6e 100644 --- a/document.out +++ b/document.out @@ -5,50 +5,48 @@ \BOOKMARK [1][-]{section*.6}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000A\000r\000t\000i\000c\000u\000l\000a\000t\000i\000o\000n}{}% 5 \BOOKMARK [2][-]{section*.7}{\376\377\000P\000r\000o\000b\000l\000e\000m\000\040\000S\000t\000a\000t\000e\000m\000e\000n\000t}{section*.6}% 6 \BOOKMARK [2][-]{section*.8}{\376\377\000S\000t\000a\000k\000e\000h\000o\000l\000d\000e\000r\000s}{section*.6}% 7 -\BOOKMARK [2][-]{section*.9}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000C\000o\000n\000s\000t\000r\000a\000i\000n\000t\000s}{section*.6}% 8 -\BOOKMARK [1][-]{section*.10}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000R\000e\000v\000i\000e\000w}{}% 9 -\BOOKMARK [2][-]{section*.11}{\376\377\000E\000x\000i\000s\000t\000i\000n\000g\000\040\000T\000o\000o\000l\000s}{section*.10}% 10 -\BOOKMARK [2][-]{section*.12}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000r\000e\000s\000e\000a\000r\000c\000h}{section*.10}% 11 -\BOOKMARK [2][-]{section*.13}{\376\377\000D\000a\000t\000a\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.10}% 12 -\BOOKMARK [3][-]{section*.14}{\376\377\000T\000w\000i\000t\000t\000e\000r\000\040\000a\000n\000d\000\040\000T\000w\000i\000t\000t\000e\000r\000\040\000A\000P\000I}{section*.13}% 13 -\BOOKMARK [3][-]{section*.15}{\376\377\000T\000w\000e\000e\000p\000y\000\040\000P\000y\000t\000h\000o\000n\000\040\000P\000a\000c\000k\000a\000g\000e}{section*.13}% 14 -\BOOKMARK [2][-]{section*.16}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.10}% 15 -\BOOKMARK [3][-]{section*.17}{\376\377\000N\000a\000t\000u\000r\000a\000l\000\040\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000P\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.16}% 16 -\BOOKMARK [3][-]{section*.18}{\376\377\000V\000a\000l\000e\000n\000c\000e\000\040\000A\000w\000a\000r\000e\000\040\000D\000i\000c\000t\000i\000o\000n\000a\000r\000y\000\040\000a\000n\000d\000\040\000s\000E\000n\000t\000i\000m\000e\000n\000t\000\040\000R\000e\000a\000s\000o\000n\000i\000n\000g}{section*.16}% 17 -\BOOKMARK [2][-]{section*.19}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000s}{section*.10}% 18 -\BOOKMARK [3][-]{section*.20}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000\050\000R\000N\000N\000\051}{section*.19}% 19 -\BOOKMARK [3][-]{section*.21}{\376\377\000L\000o\000n\000g\000-\000S\000h\000o\000r\000t\000\040\000T\000e\000r\000m\000\040\000M\000e\000m\000o\000r\000y\000\040\000\050\000L\000S\000T\000M\000\051}{section*.19}% 20 -\BOOKMARK [3][-]{section*.22}{\376\377\000K\000e\000r\000a\000\040\000a\000n\000d\000\040\000T\000e\000n\000s\000o\000r\000F\000l\000o\000w}{section*.19}% 21 -\BOOKMARK [3][-]{section*.23}{\376\377\000O\000p\000t\000i\000m\000i\000s\000e\000r\000s}{section*.19}% 22 -\BOOKMARK [3][-]{section*.24}{\376\377\000L\000o\000s\000s}{section*.19}% 23 -\BOOKMARK [3][-]{section*.25}{\376\377\000R\000e\000g\000u\000l\000a\000r\000i\000s\000a\000t\000i\000o\000n\000\040\000-\000\040\000D\000r\000o\000p\000o\000u\000t\000s}{section*.19}% 24 -\BOOKMARK [2][-]{section*.26}{\376\377\000M\000a\000c\000h\000i\000n\000e\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section*.10}% 25 +\BOOKMARK [2][-]{section*.9}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000M\000o\000t\000i\000v\000a\000t\000i\000o\000n}{section*.6}% 8 +\BOOKMARK [2][-]{section*.10}{\376\377\000T\000e\000c\000h\000n\000i\000c\000a\000l\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000a\000t\000i\000o\000n}{section*.6}% 9 +\BOOKMARK [2][-]{section*.11}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000C\000o\000n\000s\000t\000r\000a\000i\000n\000t\000s}{section*.6}% 10 +\BOOKMARK [1][-]{section*.12}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000e\000\040\000R\000e\000v\000i\000e\000w}{}% 11 +\BOOKMARK [2][-]{section*.13}{\376\377\000E\000x\000i\000s\000t\000i\000n\000g\000\040\000T\000o\000o\000l\000s}{section*.12}% 12 +\BOOKMARK [2][-]{section*.14}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000r\000e\000s\000e\000a\000r\000c\000h}{section*.12}% 13 +\BOOKMARK [2][-]{section*.15}{\376\377\000D\000a\000t\000a\000\040\000C\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.12}% 14 +\BOOKMARK [3][-]{section*.16}{\376\377\000T\000w\000i\000t\000t\000e\000r\000\040\000a\000n\000d\000\040\000T\000w\000i\000t\000t\000e\000r\000\040\000A\000P\000I}{section*.15}% 15 +\BOOKMARK [3][-]{section*.17}{\376\377\000T\000w\000e\000e\000p\000y\000\040\000P\000y\000t\000h\000o\000n\000\040\000P\000a\000c\000k\000a\000g\000e}{section*.15}% 16 +\BOOKMARK [2][-]{section*.18}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.12}% 17 +\BOOKMARK [3][-]{section*.19}{\376\377\000N\000a\000t\000u\000r\000a\000l\000\040\000L\000a\000n\000g\000u\000a\000g\000e\000\040\000P\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.18}% 18 +\BOOKMARK [3][-]{section*.20}{\376\377\000V\000a\000l\000e\000n\000c\000e\000\040\000A\000w\000a\000r\000e\000\040\000D\000i\000c\000t\000i\000o\000n\000a\000r\000y\000\040\000a\000n\000d\000\040\000s\000E\000n\000t\000i\000m\000e\000n\000t\000\040\000R\000e\000a\000s\000o\000n\000i\000n\000g}{section*.18}% 19 +\BOOKMARK [2][-]{section*.21}{\376\377\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000s}{section*.12}% 20 +\BOOKMARK [3][-]{section*.22}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000\050\000R\000N\000N\000\051}{section*.21}% 21 +\BOOKMARK [3][-]{section*.23}{\376\377\000L\000o\000n\000g\000-\000S\000h\000o\000r\000t\000\040\000T\000e\000r\000m\000\040\000M\000e\000m\000o\000r\000y\000\040\000\050\000L\000S\000T\000M\000\051}{section*.21}% 22 +\BOOKMARK [3][-]{section*.24}{\376\377\000K\000e\000r\000a\000s\000\040\000a\000n\000d\000\040\000T\000e\000n\000s\000o\000r\000F\000l\000o\000w}{section*.21}% 23 +\BOOKMARK [3][-]{section*.25}{\376\377\000O\000p\000t\000i\000m\000i\000s\000e\000r\000s}{section*.21}% 24 +\BOOKMARK [2][-]{section*.26}{\376\377\000M\000a\000c\000h\000i\000n\000e\000\040\000L\000e\000a\000r\000n\000i\000n\000g}{section*.12}% 25 \BOOKMARK [3][-]{section*.27}{\376\377\000N\000a\000i\000v\000e\000\040\000B\000a\000y\000e\000s}{section*.26}% 26 -\BOOKMARK [2][-]{section*.28}{\376\377\000O\000t\000h\000e\000r\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section*.10}% 27 -\BOOKMARK [3][-]{section*.29}{\376\377\000N\000g\000r\000a\000m\000s}{section*.28}% 28 -\BOOKMARK [3][-]{section*.30}{\376\377\000S\000c\000o\000r\000i\000n\000g\000\040\000a\000n\000d\000\040\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section*.28}% 29 -\BOOKMARK [1][-]{section*.31}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 30 -\BOOKMARK [2][-]{section*.32}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section*.31}% 31 -\BOOKMARK [2][-]{section*.33}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section*.31}% 32 -\BOOKMARK [2][-]{section*.34}{\376\377\000P\000a\000c\000k\000a\000g\000e\000s\000,\000\040\000T\000o\000o\000l\000s\000\040\000a\000n\000d\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section*.31}% 33 -\BOOKMARK [1][-]{section*.35}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n\000\040\000a\000n\000d\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 34 -\BOOKMARK [2][-]{section*.36}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.35}% 35 -\BOOKMARK [3][-]{section*.37}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000s\000e\000r\000i\000e\000s\000\040\000D\000a\000t\000a}{section*.36}% 36 -\BOOKMARK [2][-]{section*.38}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.35}% 37 -\BOOKMARK [3][-]{section*.39}{\376\377\000P\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.38}% 38 -\BOOKMARK [3][-]{section*.43}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.38}% 39 -\BOOKMARK [2][-]{section*.46}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.35}% 40 -\BOOKMARK [3][-]{section*.47}{\376\377\000V\000A\000D\000E\000R}{section*.46}% 41 -\BOOKMARK [2][-]{section*.48}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k}{section*.35}% 42 -\BOOKMARK [3][-]{section*.49}{\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000o\000d\000e\000l}{section*.48}% 43 -\BOOKMARK [3][-]{section*.50}{\376\377\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section*.48}% 44 -\BOOKMARK [3][-]{section*.51}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000P\000r\000e\000d\000i\000c\000t\000i\000o\000n\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section*.48}% 45 -\BOOKMARK [1][-]{section*.52}{\376\377\000T\000e\000s\000t\000i\000n\000g\000:\000\040\000V\000e\000r\000i\000f\000i\000c\000a\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 46 -\BOOKMARK [1][-]{section*.53}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n\000:\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 47 -\BOOKMARK [2][-]{section*.54}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section*.53}% 48 -\BOOKMARK [1][-]{section*.55}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{}% 49 -\BOOKMARK [2][-]{section*.56}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section*.55}% 50 -\BOOKMARK [2][-]{section*.57}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section*.55}% 51 -\BOOKMARK [1][-]{section*.59}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 52 -\BOOKMARK [2][-]{section*.60}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000A\000\040\000-\000\040\000P\000r\000o\000j\000e\000c\000t\000\040\000I\000n\000i\000t\000i\000a\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t}{section*.59}% 53 -\BOOKMARK [2][-]{section*.61}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000B\000\040\000-\000\040\000L\000o\000g\000\040\000b\000o\000o\000k}{section*.59}% 54 +\BOOKMARK [1][-]{section*.28}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 27 +\BOOKMARK [2][-]{section*.29}{\376\377\000S\000o\000l\000u\000t\000i\000o\000n\000\040\000S\000u\000m\000m\000a\000r\000y}{section*.28}% 28 +\BOOKMARK [2][-]{section*.30}{\376\377\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s}{section*.28}% 29 +\BOOKMARK [2][-]{section*.31}{\376\377\000D\000a\000t\000a\000\040\000f\000l\000o\000w\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{section*.28}% 30 +\BOOKMARK [2][-]{section*.32}{\376\377\000P\000a\000c\000k\000a\000g\000e\000s\000,\000\040\000T\000o\000o\000l\000s\000\040\000a\000n\000d\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section*.28}% 31 +\BOOKMARK [1][-]{section*.33}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000e\000s\000i\000g\000n\000\040\000a\000n\000d\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{}% 32 +\BOOKMARK [2][-]{section*.34}{\376\377\000D\000a\000t\000a\000\040\000c\000o\000l\000l\000e\000c\000t\000i\000o\000n}{section*.33}% 33 +\BOOKMARK [3][-]{section*.35}{\376\377\000P\000r\000i\000c\000e\000\040\000T\000i\000m\000e\000-\000s\000e\000r\000i\000e\000s\000\040\000D\000a\000t\000a}{section*.34}% 34 +\BOOKMARK [2][-]{section*.36}{\376\377\000D\000a\000t\000a\000\040\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.33}% 35 +\BOOKMARK [3][-]{section*.37}{\376\377\000P\000r\000e\000p\000r\000o\000c\000e\000s\000s\000i\000n\000g}{section*.36}% 36 +\BOOKMARK [3][-]{section*.41}{\376\377\000S\000p\000a\000m\000\040\000F\000i\000l\000t\000e\000r\000i\000n\000g}{section*.36}% 37 +\BOOKMARK [2][-]{section*.44}{\376\377\000S\000e\000n\000t\000i\000m\000e\000n\000t\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{section*.33}% 38 +\BOOKMARK [3][-]{section*.45}{\376\377\000V\000A\000D\000E\000R}{section*.44}% 39 +\BOOKMARK [2][-]{section*.46}{\376\377\000R\000e\000c\000u\000r\000r\000e\000n\000t\000\040\000N\000e\000u\000r\000a\000l\000\040\000N\000e\000t\000w\000o\000r\000k\000\040\000-\000\040\000L\000S\000T\000M}{section*.33}% 40 +\BOOKMARK [3][-]{section*.47}{\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000\040\000a\000n\000d\000\040\000T\000e\000s\000t\000i\000n\000g\000\040\000M\000o\000d\000e\000l}{section*.46}% 41 +\BOOKMARK [3][-]{section*.48}{\376\377\000S\000c\000o\000r\000i\000n\000g\000\040\000a\000n\000d\000\040\000V\000a\000l\000i\000d\000a\000t\000i\000o\000n}{section*.46}% 42 +\BOOKMARK [3][-]{section*.49}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000P\000r\000e\000d\000i\000c\000t\000i\000o\000n\000\040\000F\000o\000r\000e\000c\000a\000s\000t\000i\000n\000g}{section*.46}% 43 +\BOOKMARK [1][-]{section*.50}{\376\377\000T\000e\000s\000t\000i\000n\000g\000:\000\040\000V\000e\000r\000i\000f\000i\000c\000a\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 44 +\BOOKMARK [1][-]{section*.51}{\376\377\000D\000i\000s\000c\000u\000s\000s\000i\000o\000n\000:\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000\040\000a\000n\000d\000\040\000R\000e\000f\000l\000e\000c\000t\000i\000o\000n}{}% 45 +\BOOKMARK [2][-]{section*.52}{\376\377\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000s}{section*.51}% 46 +\BOOKMARK [1][-]{section*.53}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{}% 47 +\BOOKMARK [2][-]{section*.54}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{section*.53}% 48 +\BOOKMARK [2][-]{section*.55}{\376\377\000F\000u\000t\000u\000r\000e\000\040\000I\000m\000p\000r\000o\000v\000e\000m\000e\000n\000t\000s}{section*.53}% 49 +\BOOKMARK [1][-]{section*.57}{\376\377\000A\000p\000p\000e\000n\000d\000i\000c\000e\000s}{}% 50 +\BOOKMARK [2][-]{section*.58}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000A\000\040\000-\000\040\000P\000r\000o\000j\000e\000c\000t\000\040\000I\000n\000i\000t\000i\000a\000t\000i\000o\000n\000\040\000D\000o\000c\000u\000m\000e\000n\000t}{section*.57}% 51 +\BOOKMARK [2][-]{section*.59}{\376\377\000A\000p\000p\000e\000n\000d\000i\000x\000\040\000B\000\040\000-\000\040\000L\000o\000g\000\040\000b\000o\000o\000k}{section*.57}% 52 diff --git a/document.pdf b/document.pdf index f0e7cbf..544b05f 100644 Binary files a/document.pdf and b/document.pdf differ diff --git a/document.synctex.gz b/document.synctex.gz index 6069bf1..a2874ac 100644 Binary files a/document.synctex.gz and b/document.synctex.gz differ diff --git a/document.tex b/document.tex index 5f4e846..79d84c2 100644 --- a/document.tex +++ b/document.tex @@ -149,22 +149,87 @@ The key problems this project attempts to address are that of, an open-source system available to the public that aids in the analysis and prediction of BTC. The accuracy of open-source tools and technology when applied to the trading market scene and to identify whether there is a correlation between Twitter sentiment and BTC price fluctuation. While there are existing tools only a few are available to the public and only provide basic functionality, while others are kept in-house of major corporations who invest into this problem domain. - The other issue presented here is that assuming perfect accuracy can be achieved is naive. As this project will only be using existing tools and technologies thus, there are limitations to accuracy that can be obtained. One of that being the suitability of the tools, there are no open-source sentiment analysers for stock market prediction, thus finding a specifically trained analyser for the chosen domain in highly unlikely. In relation, finding the most suitable machine learning or neural network is equally important as this will determine the accuracy of the predictions and should be discussed in the literature review. + The other issue presented here is that assuming perfect accuracy can be achieved is naive. As this project will only be using existing tools and technologies thus, there are limitations to accuracy that can be obtained. One of that being the suitability of the tools, there are no open-source sentiment analysers for stock market prediction, thus finding a specifically trained analyser for the chosen domain in highly unlikely. In relation, finding the most suitable machine learning or neural network is equally important as this will determine the accuracy of the predictions. Due to being a regression problem, machine learning techniques and neural networks that focus around this and forecasting should be considered. The accuracy and suitability of various machine learning methods and neural networks are a known issue in their respective domains, this investigation should be carried out to determine their suitability for their needed use in this project and should be detailed in the literature review. This project will focus on the investigation of these technologies and tools to justify whether it is feasible to predict the price of BTC based on historical price and the sentiment gathered from Twitter. Limitations of the system and it's accuracy in predictions should be investigated and discussed to determine the implemented solution is the more suitable compared to other methods. \subsection{Stakeholders}\label{stakeholders} - The stakeholders of this system would be those looking to invest in the cryptocurrency markets, in this projects regard, specifically into Bitcoin. Private, Business and public investors would benefit from an open-source system such as this as it will both provide a basis for decisions on whether to invest or not. - Public investors, general people looking to invest in the cryptocurrency market, will be those stakeholders that will benefit the most from such a system. Due to the lack of any open-source tools available, these stakeholders could be seen as being left in the dark when it comes to predicting the direction of Bitcoin where Businesses and Enterprises will have a one up, due to having an internal system for predictions. + The main stakeholders of this system would be those looking to invest in the cryptocurrency markets, in this projects regard, specifically into Bitcoin. + + \begin{itemize} + \item Public Investors - These are investors from the general public. These investors can decide to either actively or passively invest in the markets but are essential for the general use of a given cryptocurrency. This type of investor would benefit the most from an open-source system such as this, as it will aim to provide a basis for decisions for buying or selling Bitcoin. Additionally, due to the lack of any open-source tools available, these stakeholders could be seen as being left in the dark when it comes to predicting the direction of Bitcoin where Businesses and Enterprises will have a one up, due to having an internal system for predictions. + \item Speculators - These stakeholders can be both public and business, who aim for the chance of the possibility fast. They actively invest at points where a market is an impending rise in price and tend to sell after a market makes them a reasonable amount of money before it possibly drops. These stakeholders would benefit from such a system as it will provide a means to identify and predict short term gains in the Bitcoin market, and if taken into decisions could make a profit. + \item Business Investors: These will be investors of a business who would be investing on the behalf of a company. A system such as that this project will provide may benefit such a stakeholder, but the information would be used as a collective with others to justify the investment. Additionally, this system may not benefit this stakeholder as the company they are investing for may have an equivalent or better system. + \item Prospect Investors: These are new investors to the cryptomarket scene who are looking to get into the market and are generally looking for initial information of the market movement. This system will benefit such a stakeholder in their initial decisions in market investment, but not as much as a generally more active investor. This is due to the extent to which a new investor invests compared to a establish active investor. + + \item Developer - Andrew Sotheran: The developer responsible for this project by developing a solution that satisfies the problem and objective defined in the \textit{Technical Specification}. As the sole developer of this project it should be ensured that the system is developed on time and the project runs smoothly. + \item Project Supervisor - Kenneth Boness: Is the projects supervisor whom will oversee the development through weekly project meetings. Weekly feedback will be given on the progress and direction of development, and will offer advice to ensure the quality of the solution. + \end{itemize} + + \subsection{Project Motivation} + The motivation behind the project stems from a range of points, from personal and public issues with the volatility if the crypto-market, and how losses specifically could be mitigated. The personal motivations behind the conceptualisation of this began two years ago during the crash of late 2017-2018, which saw new investors blindly jump into the trend that was buying cryptocurrencies. During this period of November to December 2017 saw Bitcoin's price reach \$20,000 from \$5,000, new public investors jumped on the chance to buy into the trend of possibly making quick profits and the fear of missing out (FOMO). In late December, a few holiday sell-offs occurred from business and big investors, this coupled with a few negative outlooks posted on social media by news outlets caused the market to implode causing investors to panic sell one after the other and posting negativity on social, thus causing more decline in the market. As a result, this caused personal monetary loss and distress as being a long-term investor. + + Another motivation is that at the time of writing, there are no pubically available systems that combine sentiment analysis with historical price to forecast the price of Bitcoin or any other cryptocurrency. There are papers and a few code repositories that implement a similar concepts \cite{2} - \textit{Use of a Multi-layer Perceptron network for moving averages in Bitcoin price}, \cite{3} - \textit{Predicting Bitcoin price fluctuation with Twitter sentiment analysis}, \cite{4} - \textit{Predict Tomorrows Bitcoin (BTC) Price with Recurrent Neural Networks} but are not operational. System such as \cite{1} hosted on Coingecko, a popular cryptocurrency track site, provides a tool for basic sentiment analysis but doesn't give an evaluated indication of the direction of the market as a prediction. This leaves the public to the whim of volatility of the market without a means to know what the next, say an hour, could entail to possibly reduce losses if the market drops. Such system are usually kept in-house of major corporations whom invest significant time into tackling such a problem. Additionly, this could be seen as a positive for major investors, as such a system could cause panic selling if public investors soley trusted such a system. + + \newpage + \subsection{Technical Specification} + This project will need to follow a specification to ensure that the quality and the problem statement is met. This section will outline what this project should include, what it will not consist of and will guide the development of this project. + \newline + + \textbf{General}: + \begin{itemize} + \item To investigate into the use of lexicon-dictionary based sentiment analyser approach in for sentiment analysis and it's customisability for a given topic domain + \item To create a system that can predict the next hour of Bitcoin’s price when given the price and sentiment for the past hour + \item To investigate into natural language data pre-processing techniques and how these could be used to filter out unwanted data + \item To investigate into the use of a neural network, specifically an LSTM for forecasting price data + \item Ultimatly, to investigate into how the use of sentiment effects the prediction of price for the next hour + \newline + \end{itemize} + + + \textbf{Natural Language pre-processing (Spam and language detection filtering)} + \begin{itemize} + \item To produce a system that processes the historical and live tweets, removing unwanted characters, removing urls and punctuation. + \item To produce a system for spam filter using probability likelihood for processed tweets. A naive Bayes approach may be suitable for this given task + \item To produce a language detection and filtering system that removes all tweets that are not of the English language or containing non-basic-latin characters + \item To provide a means for stemming, tokenisation and stopword removal to aid in data pre-processing for language detection and spam filtering + \newline + \end{itemize} + + \textbf{Neural Network} + \begin{itemize} + \item To produce a neural network which trains on collected, historical and live data, to forecast the future price of Bitcoin, based on price and sentiement + \item To produce a neural netowork which accomplished the same as the other above, but with out use of sentiment + \item To produce metrics to justify accuracy of the model + \item To produce data files containing, the current time of predictions alongside current hour price and sentiment. This should also include a suggested action based on a threshold for the price difference between hours. + \item To produce JSON files containing the true and predicted price values of every hour for trained data, and another for current reoccuring predictions. + \newline + \end{itemize} + + \textbf{Interface} + \begin{itemize} + \item To produce a basic interface which displays the predicted values alongside true price values with a time interval step of an hour. This can be displayed as both a table consisting of: + \subitem Date of prediction, predicted price of next hour, current hour price and sentiment, and a suggested action based on a threshold for the price difference between hours. + \subitem To produce charts displaying the true and predicted price values for every hour, from both start of new predictions made, and from training predictions + \item To display a table of performance metrics of the trained model + \newline + \end{itemize} + + \textbf{Server} + \begin{itemize} + \item This system, both prediction system and interface, should be deployed to a server due to the need to be constantly running + \end{itemize} \subsection{Project Constraints}\label{constraints} - This project will not attempt to justify the accuracy of the chosen algorithm or tools over other algorithms. It will be discussed in the literature review the justifications made on why the chosen algorithm and tools have been used for this project over the others, but accuracy will not be directly compared. + + This project will not attempt to justify the accuracy of the chosen algorithm or tools over other algorithms. It will be discussed in the solution approach the justifications made on why the chosen algorithm and tools have been used for this project over the others, but accuracy will not be directly compared. This project will only be coded to predict an hour ahead as the model will be trained on an hourly basis as the data is gathered per hour. Predictions for further in the future can be modelled but will be seen as a future improvement to the system. The detail of a interface may be subject of change through this project due to time contraints and the focus being the investigation of the impact social media has on market predictions. + \newpage @@ -180,11 +245,11 @@ There has been a plentiful amount of research conducted in this problem domain. Numerous theses globally have been published in recent years on the topic of cryptocurrency market predictions and analysis, and even more, research conducted on general stock markets further back. - The thesis written by \textit{Evita Stenqvist and Jacob Lonno} of the \textit{KTH Royal Institute of Technology} \cite{2} investigates the use of sentiment expressed through micro-blogging such as Twitter can have on the price fluctuations of Bitcoin. Its primary focus was creating an analyser for the sentiment of tweets more accurately \textit{"by not only taking into account negation, but also valence, common slang and smileys"}, than that of former researchers that \textit{"mused that accounting for negations in text may be a step in the direction of more accurate predictions."}. This would be built upon the lexicon-based sentiment analyser VADER to ascertain the overall sentiment scores were grouped into time-series for each interval from 5 minutes to 4 hours, along with the interval prices for Bitcoin. The model chosen was a naive binary classified vectors of predictions for a certain threshold to \textit{"ultimately compare the predictions to actual historical price data"}. The results of this research suggest that a binary classification model of varying threshold over time-shifts in time-series data was "lackluster", seeing the number of predictions decreasing rapidly as the threshold changed. This research is a good basis of starting research upon, as it suggests tools such as VADER for sentiment analysis and that the use of a machine learning algorithm would be a next step in the project that would yield better more accurate results. + The thesis written by \textit{Evita Stenqvist and Jacob Lonno} of the \textit{KTH Royal Institute of Technology} \cite{3} investigates the use of sentiment expressed through micro-blogging such as Twitter can have on the price fluctuations of Bitcoin. Its primary focus was creating an analyser for the sentiment of tweets more accurately \textit{"by not only taking into account negation, but also valence, common slang and smileys"}, than that of former researchers that \textit{"mused that accounting for negations in text may be a step in the direction of more accurate predictions."}. This would be built upon the lexicon-based sentiment analyser VADER to ascertain the overall sentiment scores were grouped into time-series for each interval from 5 minutes to 4 hours, along with the interval prices for Bitcoin. The model chosen was a naive binary classified vectors of predictions for a certain threshold to \textit{"ultimately compare the predictions to actual historical price data"}. The results of this research suggest that a binary classification model of varying threshold over time-shifts in time-series data was "lackluster", seeing the number of predictions decreasing rapidly as the threshold changed. This research is a good basis of starting research upon, as it suggests tools such as VADER for sentiment analysis and that the use of a machine learning algorithm would be a next step in the project that would yield better more accurate results. Another thesis written by \textit{Pagolu, Venkata Sasank and Reddy Kamal Nayan, Panda Ganapati and Majhi, Babita} \cite{1} on "Sentiment Analysis of Twitter Data for Predicting Stock Market Movements" 2.5 million tweets on Microsoft were extracted from Twitter, sentiment analysis and logistical regression performed on the data yielded 69.01\% accuracy for a 3-day period on the increase/decrease in stock price. These results showed a "\textit{good correlation between stock market movements and the sentiments of the public expressed in Twitter}". Using various natural language pre-processing tweets for feature extraction such as N-gram representation the sentiment from tweets were extrapolated. Both Word2vec and a random forest classifier were compared for accuracy, Word2vec being chosen over the machine learning model. Word2vec, being a group of related shallow two-layer neural network models to produce word embeddings. - A topic that reoccurs in various papers and theses is that of the use and focus of regression techniques and machine learning methods. Few implement a fully fledged neural network, the above paper attempts to use a simple network to achieve predictions of classification of sentiment for stock market movement then correlated this with historical data of prices. An article posted on "Code Project" by Intel Corporation \cite{3} compares the accuracy of three machine learning algorithms; Random Forest, Logistic Regression and Multi-Layer Perceptron (MLP) classifiers on predicting the price fluctuations of Bitcoin with embedded price indices. Results showing \textit{"that using the MLP classifier (a.k.a. neural networks) showed better results than logistic regression and random forest trained models"}. This assumption can be backed up by the results from a thesis posted on IEEE \cite{4} which compares a Bayesian optimised recurrent neural network and a Long Short Term Memory (LSTM) network. Showing the LSTM model achieving \textit{"the highest classification accuracy of 52\% and a RMSE of 8\%"}. With an interest in neural networks personally and with little papers utilising them for this purpose a neural network will thus be implemented, and the accuracy of one's predictions with use of sentiment analysis data analysed and discussed. + A topic that reoccurs in various papers and theses is that of the use and focus of regression techniques and machine learning methods. Few implement a fully fledged neural network, the above paper attempts to use a simple network to achieve predictions of classification of sentiment for stock market movement then correlated this with historical data of prices. An article posted on "Code Project" by Intel Corporation \cite{5} compares the accuracy of three machine learning algorithms; Random Forest, Logistic Regression and Multi-Layer Perceptron (MLP) classifiers on predicting the price fluctuations of Bitcoin with embedded price indices. Results showing \textit{"that using the MLP classifier (a.k.a. neural networks) showed better results than logistic regression and random forest trained models"}. This assumption can be backed up by the results from a thesis posted on IEEE \cite{6} which compares a Bayesian optimised recurrent neural network and a Long Short Term Memory (LSTM) network. Showing the LSTM model achieving \textit{"the highest classification accuracy of 52\% and a RMSE of 8\%"}. With an interest in neural networks personally and with little papers utilising them for this purpose a neural network will thus be implemented, and the accuracy of one's predictions with use of sentiment analysis data analysed and discussed. \subsection{Data Collection}\label{tweet_collection} @@ -193,7 +258,7 @@ The Twitter API has an extensive range of endpoints that provide access from streaming tweets for a given hashtag, obtaining historical tweets for a given time-period and hashtag, posting tweets on a users account and to change settings on a user account with authentication. The exhaustive range of features provided by these endpoints makes data collection from Twitter straight forward as one can target a specific endpoint for the required data. Due to Twitter being the target for opinion mining within this project the Twitter API will ultimately need to be utilised. This can either be used for the gathering of historical tweets or streaming current tweets for the \#Bitcoin hashtag. - There are, however, limitations and rate limits imposed on users of the API. Twitter employs a tiering system for the API - Standard, Premium and Enterprise tiers, each of which provides different amounts of access for data collection. If the API were used to capture historical data for a span of 3 months, each tier is allowed to obtain varying amounts of data for different durations; \cite{5} + There are, however, limitations and rate limits imposed on users of the API. Twitter employs a tiering system for the API - Standard, Premium and Enterprise tiers, each of which provides different amounts of access for data collection. If the API were used to capture historical data for a span of 3 months, each tier is allowed to obtain varying amounts of data for different durations; \cite{7} \begin{itemize} \item A Standard user would be able to capture 100 recent tweets for the past 7 days @@ -201,17 +266,17 @@ \item An Enterprise user would be able to capture up to 500 tweets per unlimited requests for a 30-day span and will be able to query the full-archive of tweets for a given hashtag up to 2000 tweets per unlimited amount of requests for a given time period \end{itemize} - Each tier has individual costs while the standard user negating this as a basic tier. Due to only being elegable for the Premium tier for educational purposes, historical data gathering will be limited to 100 tweets per request with a limitation of 50 requests per month. Furthermore streaming tweets is an Enterprise feature which rules out the the Twitter API for use of streaming current real-time data \cite{6}. + Each tier has individual costs while the standard user negating this as a basic tier. Due to only being elegable for the Premium tier for educational purposes, historical data gathering will be limited to 100 tweets per request with a limitation of 50 requests per month. Furthermore streaming tweets is an Enterprise feature which rules out the the Twitter API for use of streaming current real-time data \cite{8}. \subsubsection{Tweepy Python Package} - Tweepy is a python package for accessing the Twitter API. It fundamentally accomplishes the same means if one to conduct a GET request to the Twitter API, except it simplifies this into a simple to use API that is easier to implement and automate in python \cite{7}. Consequently, it builds upon the existing Twitter API to provide features such as automated streaming of provided hashtags to the API. It realises this by initialising a listener instance for a provided set of API credentials, handling authentication, connections, creating and destroying sessions. Due to Twitter's streaming API being only available to Enterprise users \cite{6}, using Tweepy to stream data for a given hashtag will provide the real-time data needed. + Tweepy is a python package for accessing the Twitter API. It fundamentally accomplishes the same means if one to conduct a GET request to the Twitter API, except it simplifies this into a simple to use API that is easier to implement and automate in python \cite{9}. Consequently, it builds upon the existing Twitter API to provide features such as automated streaming of provided hashtags to the API. It realises this by initialising a listener instance for a provided set of API credentials, handling authentication, connections, creating and destroying sessions. Due to Twitter's streaming API being only available to Enterprise users \cite{7}, using Tweepy to stream data for a given hashtag will provide the real-time data needed. \subsection{Sentiment Analysis}\label{sentiment} In short, sentiment analysis is the process and discovery of computationally identifying and categorising the underlining opinions and subjectivity expressed in written language. This process determines the writer's attitude towards a particular topic as either being positive, neutral or negative in terms of opinion, known as polarity classification. \subsubsection{Natural Language Processing}\label{algorithms} - Polarity classification is the focus of sentiment analysis and is a well-known problem in natural language processing that has had significant attention by researchers in recent years \cite{1}\cite{2}\cite{4}\cite{8}. Traditional approaches to this have usually been classified to dictionary-based approaches that use a pre-constructed sentiment lexicons such as VADER or usually confined to machine learning approaches. The later requires an extensive amount of natural language pre-processing to extrapolate vectors and features from given text, this is then fed into a machine learning classifier which attempts to categorise words to a level of sentiment polarity. Natural language pre-processing techniques that would be required for this approach would consist of; + Polarity classification is the focus of sentiment analysis and is a well-known problem in natural language processing that has had significant attention by researchers in recent years \cite{1}\cite{3}\cite{6}\cite{10}. Traditional approaches to this have usually been classified to dictionary-based approaches that use a pre-constructed sentiment lexicons such as VADER or usually confined to machine learning approaches. The later requires an extensive amount of natural language pre-processing to extrapolate vectors and features from given text, this is then fed into a machine learning classifier which attempts to categorise words to a level of sentiment polarity. Natural language pre-processing techniques that would be required for this approach would consist of; \begin{itemize} \item Tokenisation: The act of splitting a stream of text into smaller units of typographical tokens which isolate unneeded punctuation. @@ -221,17 +286,17 @@ \item Term Probability Identification and Feature Extraction: This is a process that involves identifying the most frequently used words in a given text, by using a probability type approach on a pre-defined dataset which classifies a range of texts as with overall negative or positive a machine learning algorithm is trained to classify these accordingly. \end{itemize} - The former, seen and has been proven to provide higher accuracy than traditional machine learning approaches \cite{9}, and need little pre-proeccesing conducted on the data as words have a pre-defined sentiment classification in a provided lexicon. Although these lexicons can be complex to create, they generally require little resources to use and add to. + The former, seen and has been proven to provide higher accuracy than traditional machine learning approaches \cite{11}, and need little pre-proeccesing conducted on the data as words have a pre-defined sentiment classification in a provided lexicon. Although these lexicons can be complex to create, they generally require little resources to use and add to. \subsubsection{Valence Aware Dictionary and sEntiment Reasoning}\label{Vader} - VADER is a combined lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media, and works well on texts from other domains. It is capable of detecting the polarity of a given text - positivity, neurality, and negativity \cite{10}. VADER uses a human-centric approach to sentiment analysis, combining qualitative analysis and empirical validation by using human raters to rate level of sentiment for words in it’s lexicon. Vader also has emoticon support which maps these colloquailisms have pre-defined intensities in its lexicon, which makes VADER specifically suitable for the social media domain where the used of emoticons, utf-8 emojis and slang such as "Lol" and "Yolo" are prevalent within text. Additionally, VADER is provided as a lexicon and a python library under the MIT license, thus means that it is open-source software. This means that the lexicon can be altered and added to making it able to being tailored to specific topic domains. + VADER is a combined lexicon and rule-based sentiment analysis tool that is specifically attuned to sentiments expressed in social media, and works well on texts from other domains. It is capable of detecting the polarity of a given text - positivity, neurality, and negativity \cite{12}. VADER uses a human-centric approach to sentiment analysis, combining qualitative analysis and empirical validation by using human raters to rate level of sentiment for words in it’s lexicon. Vader also has emoticon support which maps these colloquailisms have pre-defined intensities in its lexicon, which makes VADER specifically suitable for the social media domain where the used of emoticons, utf-8 emojis and slang such as "Lol" and "Yolo" are prevalent within text. Additionally, VADER is provided as a lexicon and a python library under the MIT license, thus means that it is open-source software. This means that the lexicon can be altered and added to making it able to being tailored to specific topic domains. - VADER was constructed by examining and extracting features from three pre-existing well-established and human-validated sentiment lexicons \cite{10} - (LIWC) Linguistic Inquiry and Word Count, (ANEW) Affective Norms for English Words, and (GI) General Inquirer. This is supplemented with additional lexicon features \textit{"commonly used to express sentiment in social media text (emoticons, acronyms and slang)"} \cite{10} and uses "wisdom-of-the-crowd" approach \cite{11} to establish a point of estimations of sentiment valance for each lexical feature candidate. This was evaluated for the impact of grammatical and syntactical rules and 7,500+ lexical features, with mean valence \textit{"<> zero, and SD <= 2.5"} as a human-validated "gold-standard" sentiment lexicon. \cite{10}\textit{Section 3.1} + VADER was constructed by examining and extracting features from three pre-existing well-established and human-validated sentiment lexicons \cite{12} - (LIWC) Linguistic Inquiry and Word Count, (ANEW) Affective Norms for English Words, and (GI) General Inquirer. This is supplemented with additional lexicon features \textit{"commonly used to express sentiment in social media text (emoticons, acronyms and slang)"} \cite{12} and uses "wisdom-of-the-crowd" approach \cite{13} to establish a point of estimations of sentiment valance for each lexical feature candidate. This was evaluated for the impact of grammatical and syntactical rules and 7,500+ lexical features, with mean valence \textit{"<> zero, and SD <= 2.5"} as a human-validated "gold-standard" sentiment lexicon. \cite{12}\textit{Section 3.1} - VADER is seen as a "Gold Standard" for sentiment analysis, in the paper for VADER, \cite{10} \textit{A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text}, it was compared against 11 other \textit{"highly regarded sentiment analysis tools/techniques on a corpus of over 4.2K tweets"} for polarity classification across 4 domains. Results showing VADER, across Social media text, Amazon reviews, movie reviews and Newspaper editorials, consistently outperforming other sentiment analysis tools and techniques showing a particular trend in performing significantly higher on analysis of sentiment in tweets. \cite{10} \textit{Section 4: Results} + VADER is seen as a "Gold Standard" for sentiment analysis, in the paper for VADER, \cite{12} \textit{A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text}, it was compared against 11 other \textit{"highly regarded sentiment analysis tools/techniques on a corpus of over 4.2K tweets"} for polarity classification across 4 domains. Results showing VADER, across Social media text, Amazon reviews, movie reviews and Newspaper editorials, consistently outperforming other sentiment analysis tools and techniques showing a particular trend in performing significantly higher on analysis of sentiment in tweets. \cite{12} \textit{Section 4: Results} \subsection{Neural Networks}\label{networks} - A neural network is a set of perceptrons modelled loosely after the human brain that is designed to recognise patterns in whatever domain it is intended to be trained on. A neural network can consist of multiple machine perceptrons or clustering layers in a large mesh network and the patterns they recognise are numerical which are contained in vectors. Pre-processed data, confined and processed into pre-defined vector labels, are used to teach a neural network for a given task. While this differs from how an algorithm is coded to a particular task, neural networks cannot be programmed directly for the task. The requirement is for them to learn from the information by use of different learning strategies; \cite{12}\cite{13} + A neural network is a set of perceptrons modelled loosely after the human brain that is designed to recognise patterns in whatever domain it is intended to be trained on. A neural network can consist of multiple machine perceptrons or clustering layers in a large mesh network and the patterns they recognise are numerical which are contained in vectors. Pre-processed data, confined and processed into pre-defined vector labels, are used to teach a neural network for a given task. While this differs from how an algorithm is coded to a particular task, neural networks cannot be programmed directly for the task. The requirement is for them to learn from the information by use of different learning strategies; \cite{14}\cite{15} \begin{center} \includegraphics[width=10cm,height=6cm]{images/perceptron.png} @@ -240,18 +305,18 @@ \end{center} \begin{itemize} - \item Supervised learning: Simplest of the learning forms, where a dataset have been labeled which indicate the correct classified data. The input data is learned upon until the desired result of the label is reached \cite{14} - \item Unsupervised learning: Is training the with a dataset without labels to learn from. The neural network analyses the dataset with a cost function which tells the neural network how far off target a prediction was. The neural network then adjusts input weights in attempt to increase accuracy. \cite{13} + \item Supervised learning: Simplest of the learning forms, where a dataset have been labeled which indicate the correct classified data. The input data is learned upon until the desired result of the label is reached \cite{16} + \item Unsupervised learning: Is training the with a dataset without labels to learn from. The neural network analyses the dataset with a cost function which tells the neural network how far off target a prediction was. The neural network then adjusts input weights in attempt to increase accuracy. \cite{15} \item Reinforced learning: The neural network is reinforced with positive results and punished for negative results causing a network to learn over iterations. \end{itemize} \subsubsection{Recurrent Neural Network (RNN)}\label{types} The type of neural network that is of focus for this project will be that of a Long-Short Term Memory (LSTM), however, it is important to understand how this is an extension of a Recurrent Neural Network (RNN) and how the underlying network works. - Recurrent Neural Networks (RNN) are a robust and powerful type of neural network and is considered to be among the most encouraging algorithms for use of classification, due to the fact of having internal memory. RNNs are designed to recognise patterns in sequences of presented data or most suitably, time-series data, genomes, handwriting and stock market data. Although RNNs were conceptualised and invented back in the 1980s \cite{15} they've only really shown their potential in recent years, with the increase of computational power due to the level of sequencing and internal memory store to retrain. - Due to this 'internal' memory loop, RNNs are able to remember data and adjust neurons based on failures and alternating parameters. The way this is accomplished, knowing how a standard neural network such as a feed-forward network, should initially be understood. \cite{16} + Recurrent Neural Networks (RNN) are a robust and powerful type of neural network and is considered to be among the most encouraging algorithms for use of classification, due to the fact of having internal memory. RNNs are designed to recognise patterns in sequences of presented data or most suitably, time-series data, genomes, handwriting and stock market data. Although RNNs were conceptualised and invented back in the 1980s \cite{17} they've only really shown their potential in recent years, with the increase of computational power due to the level of sequencing and internal memory store to retrain. + Due to this 'internal' memory loop, RNNs are able to remember data and adjust neurons based on failures and alternating parameters. The way this is accomplished, knowing how a standard neural network such as a feed-forward network, should initially be understood. \cite{18} - A standard, feed-forward neural network has a single data flow with an input layer, through hidden computational layers, to an output layer. Therefore any node in the network will never see the same data again. However, in an RNN data is cycled through a loop over the same node, thus two inputs into the perceptron. Decisions are influenced by previous data that it has previously learned from if any, which in turn affects output and the weights of the network. \cite{17} + A standard, feed-forward neural network has a single data flow with an input layer, through hidden computational layers, to an output layer. Therefore any node in the network will never see the same data again. However, in an RNN data is cycled through a loop over the same node, thus two inputs into the perceptron. Decisions are influenced by previous data that it has previously learned from if any, which in turn affects output and the weights of the network. \cite{19} \begin{center} \includegraphics[width=15cm,height=6cm]{images/rnn_ffn.png} @@ -262,45 +327,120 @@ The act of tweaking weights to alter the processing of the next iteration of data in an RNN is called backpropagation, which in short means going back through the network to find the partial derivatives of the error with respect to the weights after output has occurred. Along with gradient descent, an algorithm that adjusts the weights up or down depending on which would reduce the error. There are however a few obstacles of RNNs; \begin{itemize} - \item Exploding Gradients: Is when gradient decsent assigns high importance to the weights. As in the algorithm assigns a ridiculously high or low value for the weights on iteration which can cause overlow and result in NaN values \cite{18} - \item Vanishing Gradients: Is when the values of a gradient are small enough that weights cannot be altered and the model stops learning. \cite{19} + \item Exploding Gradients: Is when gradient decsent assigns high importance to the weights. As in the algorithm assigns a ridiculously high or low value for the weights on iteration which can cause overlow and result in NaN values \cite{20} + \item Vanishing Gradients: Is when the values of a gradient are small enough that weights cannot be altered and the model stops learning. \cite{21} \end{itemize} - These issues are overcome by the concept of Long-Short Term Memory neural networks, coined by \textit{Sepp Hochreiter and Juergen Schmidhuber, 1997} \cite{20}. + These issues are overcome by the concept of Long-Short Term Memory neural networks, coined by \textit{Sepp Hochreiter and Juergen Schmidhuber, 1997} \cite{22}. \subsubsection{Long-Short Term Memory (LSTM)}\label{lstms} - LSTMs are an extension of recurrent neural networks capable of learning long-term dependancies and were conceptualised by \textit{Sepp Hochreiter and Juergen Schmidhuber, 1997} \cite{20}. LSTMs were explicity designed to avoid long-term dependancy problems such as exploding and vanishing gradients. As they are an extension of RNNs they operating in almost the exact same manner, but stores the actual gradients and weights in memory which allows for LSTMs to read, write and alter the values. A way of explaining how this works is seeing the memory block as a gated cell, where 'gated' is that the cell decides whether or not to store or alter data in it's memory based input data and the importance assigned to it. In a sense it learns over time of which values and data is important. + LSTMs are an extension of recurrent neural networks capable of learning long-term dependancies and were conceptualised by \textit{Sepp Hochreiter and Juergen Schmidhuber, 1997} \cite{22}. LSTMs were explicity designed to avoid long-term dependancy problems such as exploding and vanishing gradients. As they are an extension of RNNs they operating in almost the exact same manner, but stores the actual gradients and weights in memory which allows for LSTMs to read, write and alter the values. A way of explaining how this works is seeing the memory block as a gated cell, where 'gated' is that the cell decides whether or not to store or alter data in it's memory based input data and the importance assigned to it. In a sense it learns over time of which values and data is important. \begin{center} - \includegraphics[width=10cm,height=8cm]{images/lstm.png} + \includegraphics[width=9cm,height=7cm]{images/lstm.png} \newline - \textit{Figure 3: A conceptual design of an LSTM cell bank - from Medium article by Shi Yan: Understanding LSTM and its diagrams}\cite{21} + \textit{Figure 3: A conceptual design of an LSTM cell bank - from Medium article by Shi Yan: Understanding LSTM and its diagrams}\cite{23} \end{center} - The network takes in three initial inputs, input of current time step, output from the previous LSTM unit if any, and the memory of the previous unit. Outputs, $H_t$ - output of current network, and $C_t$ - the memory of the current unit. \cite{21} + The network takes in three initial inputs, input of current time step, output from the previous LSTM unit if any, and the memory of the previous unit. Outputs, $H_t$ - output of current network, and $C_t$ - the memory of the current unit. \cite{23} - The various steps of the network decide what information is thrown away from the cell state, through use of a 'forget gate' which is influencted by the calculations of sigmod memory gates which influence how much of old and new memory is used %$C_t_\--1$,UNCOMMENT %$H_t_\--1$% + The various steps of the network decide what information is thrown away from the cell state, through use of a 'forget gate' which is influencted by the calculations of sigmod memory gates which influence how much of old and new memory is used $C_{t_-1}$, $H_{t-1}$ and $X_t$, and merged together based upon importance. The section of the cell that controls the outflow memory $H_t$ and $C_t$ determines how much of the new memory should be used by the next LSTM unit. - \textit{For a more in-detailed explanation of exactly how the calculations are made see} \cite{20},\cite{21} and \cite{22}. + \textit{For a more in-detailed explanation of exactly how the calculations are made see} \cite{22},\cite{23} and \cite{24}. - As mentioned in the formost section of related work an LSTM network, the use of one would be optimal for the given problem domain over the use of machine learning algorithms. + As mentioned in the formost section of related work the use of an LSTM network would be optimal for the given problem domain over the use of machine learning algorithms, for time-series data. As detailed above, LSTMs are widley used for time-series data forecasting due to being able to remember previous data and weights over long sequence spans\cite{22}\cite{25}. The flexability of LSTMs such as many-to-many models, useful \textit{"to predict multiple future time steps at once given all the previous inputs"} due to use of look-back windows and control of multiple 3D input parameters.\cite{25} - \subsubsection{Kera and TensorFlow} + \subsubsection{Keras and TensorFlow} + TensorFlow is an open-source numerical math computational library framework for dataflow differentiable programming, primarily used for machine and deep learning applications such as neural networks. TensorFlow bundles various machine learning and deep learning models and algorithms into one package for the Python language, but executes as byte code executed in C++ for performance. TensorFlow provides a range of conveniences to developers for the types of algorithms it supports such as debugging models and modifying graph operations separately instead of constructing and evaluating all at once, and compatibility to execute on CPUs or GPUs \cite{26}. However, TensorFlow's implementation and API, although provides an abstraction for development for machine and deep learning algorithms and simplifies implementation, it isn't all too friendly to programmers to use, especially new developers to the field of machine and deep learning. This is were the Keras API comes in. + + Keras is a high-level built to run atop of deep learning libraries such as Tensorflow and Theanos - another deep learning library similar to Tensorflow. It is designed to further simplify the use and application of such deep learning libraries thus making implementing a neural network and similar supported algorithms friendlier to developers working in Python. It accomplishes this by being a modular API; neural layers, cost functions, optimisers, activation functions, and regularisation schemes are all standalone features of the API that can be combined to create functional or sequential models. Due to being a high-level API for more refined and easier development of deep learning libraries it does not provide these low-level operations and algorithms; Keras relies on a back-end engine such as TensorFlow and supports a wide range of others. \subsubsection{Optimisers} - ADAgrad optimizer, RMSprop, Adam + There are three distinct optimisers used for LSTM networks; ADAgrad optimizer, RMSprop, Adam. The role of an optimiser + All three of which is a type of Stochastic Gradient Descent, which $\theta$ (weights of LSTM) is changed according to the gradient of the loss with respect to $\theta$. Where $\alpha$ is the learning rate and $L$ is the gradient loss. \cite{27} - \subsubsection{Loss} + \[\theta_{t+1} = \theta_t - \alpha \delta L(\theta_t)\] - \subsubsection{Regularisation - Dropouts} + This is primarily used in recurrent LSTM neural networks to adjust weights up or down depending on which would reduce the error, \textit{see RNN section for non LSTM limitations}. The concept of using momentum $\mu$ in stochastic gradient decent helps to negate significant convergance and divergance during calculation of the weights and dampens the oscillation, by increasing the speed of the learning rate upon each iteration. \cite{28} + + \[\theta_{t+1} = \theta_t + v_{t+1} \] + \begin{center} + where + \end{center} + \[v_{t+1} = \mu v_t - \alpha \delta L(\theta_t)\]\cite{28} + + \begin{itemize} + \item Adagrad (Adaptive Gradient): Is a method for adaptive rate learning through adaptively changing the learning parameters. This involves performing larger updates for infrequent parameters and smaller updates for frequent parameters. This algorithm fundamentally eliminates the need to manually tune the learning rate of the neural network, and is well suited with sparse data in a large scale network. \cite{28} + \[\theta_{t+1} = \theta_t + v_{t+1} \frac{\eta}{\sqrt{G_t + \epsilon}} \cdot g_t\] + \begin{center} + ($G_t$ is the sum of the squares of the past gradients to $\theta$) + \end{center} + + \item RMSProp (Root Mean Square Propagation): Aims to resolve Adagrad’s radically diminishing learning rates by using a moving average of the squared gradient. Thus utilises the magnitude of the recent gradient decsent to normalise it, and gets adjusted automatically by choosing different learning rate for each parameter. \cite{29} + + \[\theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{(1 - \gamma) g^2_{t-1} + \gamma g_t + \epsilon}} \cdot g_t\] + + \begin{center} + ($\gamma$ - decay that takes value from 0-1. $g_t$ - moving average of squared gradients) + \end{center} \cite{30} + + \item Adam (Adaptive Moment Estimation): Also aims to resolve Adagrad’s diminishing learning rates, by calculates the adaptive learning rate for each parameter. Being one of the most popular gradient decsent optimisation algorithms, it estimates from the 1st and 2nd moments of gradients. Adam implements the exponential moving average of the gradients to scale the learning rate of the network, and keeps an average of past gradients. \cite{31} + + \[m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t\] + \[v_t = \beta_2 v_{t-1} + (1 - \beta_2) g^2_t\] + + The algorithm updates the moving averages of the gradient ($m_t$) and the squared gradient ($v_t$) which are the estimates of the 1st and 2nd moments respectively. The hyperparameters $\beta_1$ and $\beta_2$ control the decay rates of the moving averages. These are initialised as 0 as a biased estimations for the initial timesteps, but an become bias-corrected by counteracting them with; + + \[ \vec{m}_t = \frac{m_t}{1 - \beta^t_1} \] + \begin{center} + and + \end{center} + \[\vec{v}_t = \frac{v_t}{1 - \beta^t_2} \] + + Thus the final formula for the Adam optimiser is; + + \[\theta_{t+1} = \theta_t - \frac{\eta \vec{m}_t}{\sqrt{\vec{v}_t + \epsilon}} \] + + \begin{center} + \textit{Diederik P. Kingma, Jimmy Lei Ba - Adam: A method for Stochastic Optimization}\cite{30} + \end{center} + \end{itemize} \subsection{Machine Learning}\label{machine} \subsubsection{Naive Bayes} + To get an understanding of both how probability works and how the neural network will predict the next hour value based on the concepts of probability, using a well-established probability algorithm will aid in this understanding. - \subsection{Other Techniques} - \subsubsection{Ngrams} - \subsubsection{Scoring and Validation} - F-score, Precision, Accuracy, Validation Datasets, Cross-Validation + Bayes theorem works on conditional probability and is the probability of how often an event will happen given that that event has already occurred. There are numerous variations of the theorem such as Multinomial, which supports categorical features where each conforms to a multinomial distribution, and Gaussian naive Bayes, which support continuous-valued features each of which conforming to a Gaussian (normal) distribution. The classical multinomial Bayes theorem is defined as; + + \[P(H\cap A) = \frac{P(A\cap H) * P(H)}{P(A)} \] + + \begin{center} + and incase H and A are independant + \end{center} + + \[P(H\cap A) = P(H) => P(H\cap A) = P(H)P(A)\] + + where: + \begin{itemize} + \item $P(H)$ is the probability of hypothesis being true + \item $P(A)$ is the probability of evidence + \item $P(A\cap H)$ is the probability of the evidence such that the hypothesis is true + \item $P(H\cap A)$ is the probability of the hypothesis given the occurance of evidence of the probability + \end{itemize} + + The naive approach assumes the features that are used in the model are independent of one another, such that, changing the value of a feature doesn't directly influence the value of the other features used in the model. When such features are independent, the Bayes algorthim can be expanded: + + \[P(H\cap A) = \frac{P(A\cap H) * P(H)}{P(A)} \] + + \begin{center} + Becomes + \end{center} + + \[P(H\cap A_1 ... A_n) = \frac{P(A_1\cap H) * P(A_2\cap H) ... * P(A_n\cap H) * P(H)}{P(A_1) * P(A_2) ... * P(A_n)} \] + + \[Probability \ of \ Outcome \cap Evidence = \frac{Probability \ of \ Likelihood \ of \ evidence * Prior}{Probability \ of \ Evidence} \] + + The naive Bayes approach has many applications, especially for the topic of this project in classifying the probability occurance of the next price. Although it is a robust algorithm is does have its drawbacks which make it not as suitable as a neural network for the given need of this project. The naive Bayes trap is an issue that may occur due to the size of dataset that will be used. There are however other scenarios this algorithm could be used such as classification of spam data. \newpage @@ -310,7 +450,9 @@ \subsection{Solution Summary}\label{sumary} - A system will be created that will utilise + \subsection{Requirements} + + \subsection{Data flow Overview}\label{data-flow} @@ -338,9 +480,11 @@ \subsection{Sentiment Analysis} \subsubsection{VADER} - \subsection{Recurrent Neural Network} + \subsection{Recurrent Neural Network - LSTM} \subsubsection{Training and Testing Model} - \subsubsection{Validation} + Dropouts? + \subsubsection{Scoring and Validation} + Loss? \subsubsection{Future Prediction Forecasting} \newpage @@ -358,7 +502,9 @@ \section{Conclusion and Future Improvements} \subsection{Conclusion} \subsection{Future Improvements} - Shifting the intial data by and hour and sequencing over previous data + Shifting the intial data by and hour and sequencing over previous data - will also allow proper use of look-back windows + + Another could be to predict the hour of sentiment and create a threshold for it. \newpage diff --git a/document.toc b/document.toc index f1dd7e0..f4f90e5 100644 --- a/document.toc +++ b/document.toc @@ -14,106 +14,102 @@ \defcounter {refsection}{0}\relax \contentsline {subsection}{Stakeholders}{8}{section*.8} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Project Constraints}{8}{section*.9} +\contentsline {subsection}{Project Motivation}{9}{section*.9} \defcounter {refsection}{0}\relax -\contentsline {section}{Literature Review}{9}{section*.10} +\contentsline {subsection}{Technical Specification}{10}{section*.10} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Existing Tools}{9}{section*.11} +\contentsline {subsection}{Project Constraints}{11}{section*.11} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Related research}{9}{section*.12} +\contentsline {section}{Literature Review}{12}{section*.12} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data Collection}{10}{section*.13} +\contentsline {subsection}{Existing Tools}{12}{section*.13} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Twitter and Twitter API}{10}{section*.14} +\contentsline {subsection}{Related research}{12}{section*.14} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Tweepy Python Package}{11}{section*.15} +\contentsline {subsection}{Data Collection}{13}{section*.15} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Sentiment Analysis}{11}{section*.16} +\contentsline {subsubsection}{Twitter and Twitter API}{13}{section*.16} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Natural Language Processing}{11}{section*.17} +\contentsline {subsubsection}{Tweepy Python Package}{14}{section*.17} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{12}{section*.18} +\contentsline {subsection}{Sentiment Analysis}{14}{section*.18} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Neural Networks}{12}{section*.19} +\contentsline {subsubsection}{Natural Language Processing}{14}{section*.19} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{13}{section*.20} +\contentsline {subsubsection}{Valence Aware Dictionary and sEntiment Reasoning}{15}{section*.20} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{14}{section*.21} +\contentsline {subsection}{Neural Networks}{15}{section*.21} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Kera and TensorFlow}{15}{section*.22} +\contentsline {subsubsection}{Recurrent Neural Network (RNN)}{16}{section*.22} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Optimisers}{15}{section*.23} +\contentsline {subsubsection}{Long-Short Term Memory (LSTM)}{17}{section*.23} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Loss}{16}{section*.24} +\contentsline {subsubsection}{Keras and TensorFlow}{18}{section*.24} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Regularisation - Dropouts}{16}{section*.25} +\contentsline {subsubsection}{Optimisers}{19}{section*.25} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Machine Learning}{16}{section*.26} +\contentsline {subsection}{Machine Learning}{20}{section*.26} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Naive Bayes}{16}{section*.27} +\contentsline {subsubsection}{Naive Bayes}{20}{section*.27} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Other Techniques}{16}{section*.28} +\contentsline {section}{Solution Approach}{22}{section*.28} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Ngrams}{16}{section*.29} +\contentsline {subsection}{Solution Summary}{22}{section*.29} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Scoring and Validation}{16}{section*.30} +\contentsline {subsection}{Requirements}{22}{section*.30} \defcounter {refsection}{0}\relax -\contentsline {section}{Solution Approach}{17}{section*.31} +\contentsline {subsection}{Data flow Overview}{22}{section*.31} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Solution Summary}{17}{section*.32} +\contentsline {subsection}{Packages, Tools and Techniques}{22}{section*.32} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data flow Overview}{17}{section*.33} +\contentsline {section}{System Design and Implementation}{23}{section*.33} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Packages, Tools and Techniques}{17}{section*.34} +\contentsline {subsection}{Data collection}{23}{section*.34} \defcounter {refsection}{0}\relax -\contentsline {section}{System Design and Implementation}{18}{section*.35} +\contentsline {subsubsection}{Price Time-series Data}{23}{section*.35} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data collection}{18}{section*.36} +\contentsline {subsection}{Data processing}{23}{section*.36} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Price Time-series Data}{18}{section*.37} +\contentsline {subsubsection}{Preprocessing}{23}{section*.37} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Data processing}{18}{section*.38} +\contentsline {paragraph}{Tweet Filtering}{23}{section*.38} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Preprocessing}{18}{section*.39} +\contentsline {paragraph}{Text Cleaning}{23}{section*.39} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Tweet Filtering}{18}{section*.40} +\contentsline {paragraph}{Ngram based Language detection filtering}{23}{section*.40} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Text Cleaning}{18}{section*.41} +\contentsline {subsubsection}{Spam Filtering}{23}{section*.41} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Ngram based Language detection filtering}{18}{section*.42} +\contentsline {paragraph}{Tweet Processing}{23}{section*.42} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Spam Filtering}{18}{section*.43} +\contentsline {paragraph}{Naive Bayes model}{23}{section*.43} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Tweet Processing}{18}{section*.44} +\contentsline {subsection}{Sentiment Analysis}{23}{section*.44} \defcounter {refsection}{0}\relax -\contentsline {paragraph}{Naive Bayes model}{18}{section*.45} +\contentsline {subsubsection}{VADER}{23}{section*.45} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Sentiment Analysis}{18}{section*.46} +\contentsline {subsection}{Recurrent Neural Network - LSTM}{23}{section*.46} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{VADER}{18}{section*.47} +\contentsline {subsubsection}{Training and Testing Model}{23}{section*.47} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Recurrent Neural Network}{18}{section*.48} +\contentsline {subsubsection}{Scoring and Validation}{23}{section*.48} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Training and Testing Model}{18}{section*.49} +\contentsline {subsubsection}{Future Prediction Forecasting}{23}{section*.49} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Validation}{18}{section*.50} +\contentsline {section}{Testing: Verification and Reflection}{24}{section*.50} \defcounter {refsection}{0}\relax -\contentsline {subsubsection}{Future Prediction Forecasting}{18}{section*.51} +\contentsline {section}{Discussion: Contribution and Reflection}{25}{section*.51} \defcounter {refsection}{0}\relax -\contentsline {section}{Testing: Verification and Reflection}{19}{section*.52} +\contentsline {subsection}{Limitations}{25}{section*.52} \defcounter {refsection}{0}\relax -\contentsline {section}{Discussion: Contribution and Reflection}{20}{section*.53} +\contentsline {section}{Conclusion and Future Improvements}{26}{section*.53} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Limitations}{20}{section*.54} +\contentsline {subsection}{Conclusion}{26}{section*.54} \defcounter {refsection}{0}\relax -\contentsline {section}{Conclusion and Future Improvements}{21}{section*.55} +\contentsline {subsection}{Future Improvements}{26}{section*.55} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Conclusion}{21}{section*.56} +\contentsline {section}{Appendices}{29}{section*.57} \defcounter {refsection}{0}\relax -\contentsline {subsection}{Future Improvements}{21}{section*.57} +\contentsline {subsection}{Appendix A - Project Initiation Document}{29}{section*.58} \defcounter {refsection}{0}\relax -\contentsline {section}{Appendices}{24}{section*.59} -\defcounter {refsection}{0}\relax -\contentsline {subsection}{Appendix A - Project Initiation Document}{24}{section*.60} -\defcounter {refsection}{0}\relax -\contentsline {subsection}{Appendix B - Log book}{37}{section*.61} +\contentsline {subsection}{Appendix B - Log book}{42}{section*.59} diff --git a/report.bib b/report.bib index c5c279f..6c96f5e 100644 --- a/report.bib +++ b/report.bib @@ -9,6 +9,16 @@ } @inproceedings{2, + title={Non-linear autoregressive with exogeneous input (NARX) Bitcoin price prediction model using PSO-optimized parameters and moving average technical indicators}, + author={Indera, NI and Yassin, IM and Zabidi, A and Rizman, ZI}, + booktitle={Journal of Fundamental and Applied Sciences. Vol.35, No.35}, + pages={791--808}, + year={2017}, + organization={University of El Oued}, + url = {https://www.ajol.info/index.php/jfas/article/viewFile/165614/155073} +} + +@inproceedings{3, title={Predicting Bitcoin price fluctuation with Twitter sentiment analysis}, author={Evita Stenqvist, Jacob Lonno}, booktitle={}, @@ -18,7 +28,17 @@ url = {http://www.diva-portal.org/smash/get/diva2:1110776/FULLTEXT01.pdf} } -@inproceedings{3, +@inproceedings{4, + title={Predict Tomorrows Bitcoin (BTC) Price with Recurrent Neural Networks}, + author={Orhan Gazi Yalcin}, + booktitle={}, + pages={}, + year={2018}, + organization={Towards Data Science}, + url = {https://towardsdatascience.com/using-recurrent-neural-networks-to-predict-bitcoin-btc-prices-c4ff70f9f3e4} +} + +@inproceedings{5, title={Stock Predictions through News Sentiment Analysis}, author={Intel-Corporation}, booktitle={}, @@ -28,7 +48,7 @@ url = {https://www.codeproject.com/Articles/1201444/Stock-Predictions-through-News-Sentiment-Analysis} } -@inproceedings{4, +@inproceedings{6, title={Predicting the Price of Bitcoin Using Machine Learning}, author={Sean McNally, Jason Roche, Simon Caton}, booktitle={2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP)}, @@ -38,7 +58,7 @@ url = {https://ieeexplore.ieee.org/abstract/document/8374483} } -@inproceedings{5, +@inproceedings{7, title={Search Tweets}, author={Twitter}, booktitle={}, @@ -48,7 +68,7 @@ url = {https://developer.twitter.com/en/docs/tweets/search/overview} } -@inproceedings{6, +@inproceedings{8, title={Consuming streaming data}, author={Twitter}, booktitle={}, @@ -58,7 +78,7 @@ url = {https://developer.twitter.com/en/docs/tutorials/consuming-streaming-data.html} } -@inproceedings{7, +@inproceedings{9, title={Streaming With Tweepy}, author={Joshua Roesslein}, booktitle={}, @@ -68,7 +88,7 @@ url = {http://docs.tweepy.org/en/v3.4.0/streaming_how_to.html} } -@inproceedings{8, +@inproceedings{10, title={Using Linked Data for polarity classification of patients experiences}, author={Mehrnoush Shamsfard, Samira Noferesti}, booktitle={Journal of Biomedical Informatics}, @@ -78,7 +98,7 @@ url = {https://www.sciencedirect.com/science/article/pii/S1532046415001276} } -@inproceedings{9, +@inproceedings{11, title={Social media sentiment analysis: lexicon versus machine learning}, author={Chedia Dhaoui, Cynthia M. Webster, Lay Peng Tan}, booktitle={Journal of Consumer Marketing, Volume 34. Issue 6}, @@ -88,7 +108,7 @@ url = {https://www.emeraldinsight.com/doi/pdfplus/10.1108/JCM-03-2017-2141} } -@inproceedings{10, +@inproceedings{12, title={VADER: A Parsimonious Rule-based Model for Sentiment Analysis of Social Media Text}, author={C.J. Hutto and Eric Gilbert}, booktitle={Eighth International Conference on Weblogs and Social Media (ICWSM-14)}, @@ -98,7 +118,7 @@ url = {https://www.aaai.org/ocs/index.php/ICWSM/ICWSM14/paper/download/8109/8122} } -@inproceedings{11, +@inproceedings{13, title={Wisdom of Crowds}, author={Will Kenton}, booktitle={}, @@ -108,7 +128,7 @@ url = {https://www.investopedia.com/terms/w/wisdom-crowds.asp} } -@inproceedings{12, +@inproceedings{14, title={A Beginner's Guide to Neural Networks and Deep Learning}, author={Skymind}, booktitle={A.I. Wiki}, @@ -118,7 +138,7 @@ url = {https://skymind.ai/wiki/neural-network} } -@inproceedings{13, +@inproceedings{15, title={What is a neural network}, author={Jonas DeMuro}, booktitle={World of tech}, @@ -128,7 +148,7 @@ url = {https://www.techradar.com/uk/news/what-is-a-neural-network} } -@inproceedings{14, +@inproceedings{16, title={Supervised dictionary learning}, author={Mairal, J., Ponce, J., Sapiro, G., Zisserman, A. and Bach, F.R., }, booktitle={Advances in neural information processing systems }, @@ -138,7 +158,7 @@ url = {http://papers.nips.cc/paper/3448-supervised-dictionary-learning} } -@inproceedings{15, +@inproceedings{17, title={Learning internal representations by error propagation}, author={Rumelhart, David E and Hinton, Geoffrey E and Williams, Ronald J}, booktitle={}, @@ -148,7 +168,7 @@ url = {https://apps.dtic.mil/docs/citations/ADA164453} } -@inproceedings{16, +@inproceedings{18, title={A Beginner's Guide to LSTMs and Recurrent Neural Networks}, author={Skymind}, booktitle={A.I. Wiki}, @@ -158,7 +178,7 @@ url = {https://skymind.ai/wiki/lstm} } -@inproceedings{17, +@inproceedings{19, title={Recurrent Neural Networks and LSTM}, author={Niklas Donges}, booktitle={}, @@ -168,7 +188,7 @@ url = {https://towardsdatascience.com/recurrent-neural-networks-and-lstm-4b601dd822a5} } -@inproceedings{18, +@inproceedings{20, title={A Gentle Introduction to Exploding Gradients in Neural Networks}, author={Jason Brownlee, PhD.}, booktitle={}, @@ -178,7 +198,7 @@ url = {https://machinelearningmastery.com/exploding-gradients-in-neural-networks/} } -@inproceedings{19, +@inproceedings{21, title={Recurrent Neural Networks (RNN) - The Vanishing Gradient Problem}, author={Super Data Science Team}, booktitle={}, @@ -188,7 +208,7 @@ url = {https://www.superdatascience.com/blogs/recurrent-neural-networks-rnn-the-vanishing-gradient-problem} } -@inproceedings{20, +@inproceedings{22, title={Long short-term memory}, author={Hochreiter, Sepp and Schmidhuber, Jurgen}, booktitle={Neural computation, Volume 9. 8}, @@ -198,7 +218,7 @@ url = {https://www.bioinf.jku.at/publications/older/2604.pdf} } -@inproceedings{21, +@inproceedings{23, title={Understanding LSTM and its diagrams}, author={Shi Yan}, booktitle={}, @@ -208,7 +228,7 @@ url = {https://medium.com/mlreview/understanding-lstm-and-its-diagrams-37e2f46f1714} } -@inproceedings{22, +@inproceedings{24, title={Understanding LSTM Networks}, author={Christopher Olah}, booktitle={}, @@ -216,4 +236,83 @@ year={2015}, organization={}, url = {https://colah.github.io/posts/2015-08-Understanding-LSTMs} +} + +@inproceedings{25, + title={Using LSTMs to forecast time-series}, + author={Ravindra Kompella}, + booktitle={}, + pages={}, + year={2018}, + organization={Towards Data Science}, + url = {https://towardsdatascience.com/using-lstms-to-forecast-time-series-4ab688386b1f} +} + +@inproceedings{26, + title={Tensorflow: A system for large-scale machine learning}, + author={Abadi, Martin and Barham, Paul and Chen, Jianmin and Chen, Zhifeng and Davis, Andy and Dean, Jeffrey and Devin, Matthieu and Ghemawat, Sanjay and Irving, Geoffrey and Isard, Michael and others}, + booktitle={12th Symposium on Operating Systems Design and Implementation 16)}, + pages={265--283}, + year={2016}, + url={https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf} +} + +@inproceedings{27, + title={Optimization: Stochastic Gradient Descent}, + author={Stanford}, + booktitle={UFLDL Tutorial}, + pages={}, + year={}, + url={http://deeplearning.stanford.edu/tutorial/supervised/OptimizationStochasticGradientDescent} +} + +@inproceedings{28, + title={What are differences between update rules like AdaDelta, RMSProp, AdaGrad, and Adam}, + author={Rajarshee Mitra}, + booktitle={}, + pages={}, + year={2016}, + organization={Quora}, + url={https://www.quora.com/What-are-differences-between-update-rules-like-AdaDelta-RMSProp-AdaGrad-and-AdaM} +} + +@inproceedings{29, + title={Variants of rmsprop and adagrad with logarithmic regret bounds}, + author={Mukkamala, Mahesh Chandra and Hein, Matthias}, + booktitle={Proceedings of the 34th International Conference on Machine Learning-Volume 70}, + pages={2545--2553}, + year={2017}, + organization={JMLR.org}, + url={https://arxiv.org/pdf/1706.05507.pdf} +} + +@inproceedings{30, + title={Overview of different Optimizers for neural networks}, + author={Renu Khandelwal}, + booktitle={}, + pages={}, + year={2019}, + organization={Medium}, + url={https://medium.com/datadriveninvestor/overview-of-different-optimizers-for-neural-networks-e0ed119440c3} +} + +@inproceedings{31, + title={Adam: A method for Stochastic Optimization}, + author={Diederik P. Kingma, Jimmy Lei Ba}, + booktitle={arXiv preprint arXiv:1412.6980}, + pages={}, + year={2014}, + organization={arXiv}, + url={https://arxiv.org/pdf/1412.6980.pdf} +} + +@inproceedings{32, + title={An empirical study of the naive Bayes classifier}, + author={Rish, Irina and others}, + booktitle={IJCAI 2001 workshop on empirical methods in artificial intelligence}, + volume={3}, + number={22}, + pages={41--46}, + year={2001}, + url={https://www.cc.gatech.edu/~isbell/reading/papers/Rish.pdf} } \ No newline at end of file