From 5dbe63d032fbd7d914aecd0f142bba22c58e80f7 Mon Sep 17 00:00:00 2001
From: "Dobbertin, Niclas" <niclas.dobbertin@mailbox.org>
Date: Mon, 14 Oct 2024 18:27:41 +0200
Subject: update

---
 paper2/thesis.tex | 45 ++++++++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 15 deletions(-)

(limited to 'paper2/thesis.tex')

diff --git a/paper2/thesis.tex b/paper2/thesis.tex
index 5d0d8d1..6f68bb4 100644
--- a/paper2/thesis.tex
+++ b/paper2/thesis.tex
@@ -38,7 +38,7 @@
 \author{Niclas Andreas Dobbertin} % your name or stud ID
 \affiliation{Technische Universität Darmstadt}
 % \course{03-03-1416-se: Advanced Topics in Multisensory Perception and Action}
-\professor{Prof. Frank Jäkel}
+\professor{Prof.\ Frank\ Jäkel}
 % \duedate{26.02.2024} % fill in the due date for the submission opportunity you are aiming for
 
 
@@ -60,7 +60,7 @@ Living in a complex environment like the real world, a plethora of different tas
 much more efficient if knowledge from tasks can be reused in other tasks
 
 
-\citet{Frensch_1991} observed differences in learning speed depending on condition, i.e. the order in which procedures are presented.
+\citet{Frensch_1991} observed differences in learning speed depending on condition, i.e.\ the order in which procedures are presented.
 
 % \citep{anderson}
 % \citep{Taatgen_2013}
@@ -107,7 +107,7 @@ Each production starts with a baseline utility value, which gets updated by the
 
 \subsection*{Learning}
 
-\todo[inline]{Retrieval(activation) strength, utility learning, production compilation, \dots}
+\todo[inline]{Retrieval (activation) strength, utility learning, production compilation, \dots}
 
 There are a variety of methods production systems use to model learning.
 ACT-R can adjust which production is given preference during selection or create new productions based on existing ones and the models state.
@@ -391,7 +391,8 @@ Details about these difficulties will be reviewed in the Discussion.
         % \includegraphics[width=1.1\textwidth]{RT.png}
 
     \bigskip
-    \raggedright\small\textit{Note}. Mean solution time of all six procedures of a water sample in blocks of five samples.   \end{figure}
+    \raggedright\small\textit{Note}. Mean solution time of all six procedures of a water sample in blocks of five samples.
+  \end{figure}
 
 
 \begin{figure}[H]
@@ -405,23 +406,37 @@ Details about these difficulties will be reviewed in the Discussion.
 
 \section*{Discussion}
 
+This model shows that it possible to implement the task in ACT-R and that it should be possible for the model to produce task solving time for comparison with human subjects.
+During development however, a variety of difficulties emerged and ultimately prevented ACT-Rs learning functions to simulate human learning.
+An ACT-R implementation in python, pyactr, was used to program this models, which brought some pyactr-specific problems with it.
+Difficulties in re-implementing ACT-R were already mentioned in \citet{albrecht2014}, who state that today ACT-R is specified by its implementation, rather than a formal specification.
+The implementation of production compilation in pyactr seems to include some critical bugs, causing the model to crash when compiling some productions.
+While it showed that production compilation works in most cases, this stops it from being utilized in a model and prevented us from investigating its effect in our task.
+Another problem was the missing implementation of relative coordinates in visual search, meaning scanning objects left to right for a specific one is not possible and had to be circumvented by hard-coding all possible object positions to search.
+Since it is developed by very few people, it is sadly natural that specific parts and usages are not working correctly, despite being functional in general.
+
+In general, it was not clear how a production or set of productions has to be written in order to achieve some task correctly.
+While ACT-R gives a lot of tools to handle many situations, it was surprising that even even basic operations like multi-digit addition or subtraction do not have an example implementation.
+To use the goal buffer or the imaginal buffer, how to sequence tasks, how general or specific should productions be and how much strict order should the goal buffer enforce were important considerations during development and had to be answered more by feeling than by knowledge from references.
+There are various models used in ACT-R tutorials to introduce its capabilities, these however are very limited and don't expand beyond very simple tasks.
+Papers usually don't include the exact model and productions used, which leaves few examples and general guidelines to new model makers.
+Implementing new models would be much easier, if something similar to a software library exists for ACT-R.
+It could contain simple, common tasks like for example mathematical and lexical operations, visual search and handling task switching or subgoals.
+Such a library would additionally serve as an example of proper implementation of different productions in ACT-R, giving guidelines to newer model makers.
 
-\subsection*{Working with ACT-R/pyactr}
-
-\todo[inline]{no basic productions given (aside basic tutorial code), everything has to be implemented from scratch, papers using act-r very rarely publish their model code}
-\todo[inline]{}
-\todo[inline]{no/confusing task switching/subgoals}
-\todo[inline]{this model uses many different operations and modules of ACT-R and has to model each from scratch and handle task switching}
-\todo[inline]{vis: relative positions are not implemented, the visual search loops had to be unrolled to the required number of iterations and is not general}
 
 \subsection*{Model Improvements}
 
-\todo[inline]{More in-depth modeling of all operations}
-\todo[inline]{track working memory usage}
+While model currently does not work correctly, there are a variety of improvements possible after technical issues are removed.
+Mathematical operations could be modeled much more general and to work with higher and negative numbers.
+This would make it possible to learn mathematical facts from the ground up, instead of relying on a set of given knowledge.
+Introducing multiple ways of doing an operation, like addition by counting from 1 or from the first argument, as well as shortcuts like swapping arguments in applicable operations, gives the model opportunity to utilize its utility learning more.
+Another important improvement would be better switching between tasks, as e.g.\ multiplication requires additions being performed.
+This required a complex set of production, which a general task switching implementation could simplify.
 
-\newpage
+Most importantly, solving the production compilation problem and actually comparing the models learning behavior with human data would be the next step from this point on.
 
-\printbibliography
+\printbibliography{}
 
 % \end{figure}
 
-- 
cgit v1.2.3

