From c0364b52d17aa26bd20be7bd9ec73f04b90849d1 Mon Sep 17 00:00:00 2001
From: Niclas Dobbertin <niclas.dobbertin@mailbox.org>
Date: Sun, 13 Oct 2024 15:42:35 +0200
Subject: update

---
 paper2/thesis.tex | 112 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 92 insertions(+), 20 deletions(-)

(limited to 'paper2/thesis.tex')

diff --git a/paper2/thesis.tex b/paper2/thesis.tex
index dfbe27b..8e0a1ed 100644
--- a/paper2/thesis.tex
+++ b/paper2/thesis.tex
@@ -14,6 +14,8 @@
 %\doublespacing
 \renewcommand{\baselinestretch}{1.1}
 
+\usepackage{subcaption}
+
 % https://tex.stackexchange.com/questions/9796/how-to-add-todo-notes
 \usepackage[colorinlistoftodos,prependcaption,textsize=tiny]{todonotes}
 % \newcommandx{\unsure}[2][1=]{\todo[linecolor=red,backgroundcolor=red!25,bordercolor=red,#1]{#2}}
@@ -53,7 +55,7 @@
 \section*{Introduction}
 
 Transfer learning is the ability to apply lessons learning from one task, to another related or even unrelated task.
-Living in a complex environment like the real world, a plethora of different tasks, like navigating areas, finding things visually or preparing a meal have to be done.
+Living in a complex environment like the real world, a plethora of different tasks like navigating areas, finding things visually or preparing a meal have to be done. \\
 
 much more efficient if knowledge from tasks can be reused in other tasks
 
@@ -68,18 +70,16 @@ Cognitive Architectures, modeling learning, production systems, ACT-R
 
 \subsection*{Productions}
 
-\todo[inline]{Productions are Rules with a condition and an action. Example production. can interact with various modules (memory, vision, motor), Overview of production systems?}
-
 Productions decide how a production system behaves and what actions it takes.
-A production consists of two parts, a condition and an action (\ref{tab:exprod}).
+A production consists of two parts, a condition and an action (Table~\ref{tab:exprod}).
 All statements listed in the condition must be fulfilled to make the production eligible for selection.
-In ACT-R, conditions check for specific variable values most of the time, but can also check if certain buffers are empty, full or had an error, e.g. when failing to retrieve something from declarative memory.
+In ACT-R, conditions check for specific variable values most of the time, but can also check if certain buffers are empty, full or had an error, e.g.\ when failing to retrieve something from declarative memory.
 Only productions which have their conditions satisfied by the current state of the model can be selected by it.
-Once a production has been selected, its action will be done.
+Once a production has been selected, its action will be executed.
 Productions in ACT-R change values of variables and start visual, motor and memory related processes.
 
-To achieve more than the simplest tasks, multiple production executed in order are often needed.
-This means
+If the conditions of multiple productions are satisfied, ACT-R chooses the production with the highest utility.
+Each production starts with a baseline utility value, which gets updated by the model during its runtime.
 
 \begin{table}[hb]
 \caption{Example Production}
@@ -101,40 +101,104 @@ This means
   1. The conditions (\textbf{IF}), which must be fulfilled for the production to be available for selection.
   2. The actions (\textbf{THEN}), which are done when the production is selected.
 
-\end{table}\todo{}
+\end{table}
 
 \subsection*{Learning}
 
-\todo[inline]{Retrieval(activation) strength, utility learning, production compilation, ...}
+\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.
+
 When multiple productions are applicable to the current state, the production that the model thinks is the most useful should be selected.
 How useful a production is can be learned while the model is running and is modeled in ACT-R through a reinforcement learning like process called utility learning.
 
 Oftentimes a series of productions need to be executed in order, this can be combined in to a single production which does all of the actions at once, saving time deciding on which production to use.
-When two productions are successfully called in a row, a production compilation process is started and combines both into a single production if possible.
+This method is called production compilation.
+When two productions are successfully called in a row, a production compilation process is started and combines both into a single production, if possible.
 Since the compiled productions are specific to the buffer values when the compilation was done, there can be many different combined productions of the same two productions.
-E.g. a production starting retrieval of an addition fact and a production using the retrieved fact can combine into specific addition-result combinations, skipping retrieval.
-Depending on the addends, this compilation then produces different combinations like add1=1 add2=1 then sum=2 do stuff \todo{figure of solo productions and of compiled productions} \
+E.g.\ a production starting retrieval of an addition fact and a production using the retrieved fact can combine into specific addition-result combinations, skipping retrieval (Shown in Table~\ref{tab:prodcomp}).
 
-allegory? learning general production from specific ones (not used)
+(do stuff allegory? learning general production from specific ones (not used))
 
 ACT-Rs subsymbolic system also models delays and accuracy of the declarative memory, where retrieving memories can fail based on their activation strength.
 Activation strength increases the more often a memory is created or retrieved.
+Learning new facts and increasing their activation strength is also part of the learning process in an ACT-R model.
 
 
+\begin{table}[hb]
+  \begin{subtable}[h]{0.30\textwidth}
+    \caption{Production 1}
+    \label{tab:prodcompa}
+    \begin{tabular}{lr}
+    \toprule
+    \textbf{IF} \\
+      operation = subtract \\
+      argument1 = x \\
+      argument2 = y \\
+    \midrule
+      \textbf{THEN} \\
+      retrieve: x - y \\
+    \bottomrule
+    \end{tabular}
+  \end{subtable}
+  \hfill
+  \begin{subtable}[h]{0.30\textwidth}
+    \caption{Production 2}
+    \label{tab:prodcompb}
+    \begin{tabular}{lr}
+    \toprule
+    \textbf{IF} \\
+      operation = subtract \\
+      retrieve = z \\
+    \midrule
+      \textbf{THEN} \\
+      press button: z \\
+    \bottomrule
+    \end{tabular}
+  \end{subtable}
+  \hfill
+  \begin{subtable}[h]{0.30\textwidth}
+    \caption{A Compiled Production}
+    \label{tab:prodcompc}
+    \begin{tabular}{lr}
+    \toprule
+    \textbf{IF} \\
+      operation = subtract \\
+      argument1 = 3 \\
+      argument2 = 1 \\
+    \midrule
+      \textbf{THEN} \\
+      press button: 2 \\
+    \bottomrule
+    \end{tabular}
+  \end{subtable}
+
+  \caption{Production Compilation}
+  \label{tab:prodcomp}
+
+\bigskip
+\small\textit{Note}. Table~\ref{tab:prodcompa} shows a production with the condition that the operation variable must be ``subtract'', and argument1 and 2 must have any values x and y.
+If selected, it starts retrieval of the result of x - y from declarative memory.
+Production 2 (Table~\ref{tab:prodcompb}) is selected when the operation value is subtract as well, and the retrieval variable is filled with a value z.
+It then starts a motor process to press button z.
+When the model executes both productions after another, it starts the production compilation process with the current model state.
+E.g.\ in Table~\ref{tab:prodcompc}, if argument1 was 3 and argument2 was 1, it creates a new production which skips retrieval to directly press the result, if the same model state happens again.
+That means for each combination of x, y and z a different specific production can be created.
+
+\end{table}
 
 \subsection*{Task}
 
 \todo[inline]{Modified Frensch/Elio Task. 7 mathematical procedures, learning differently based on presentation order}
 
-Task desc
+(Task description, kommt noch)
 
 How modeled:
 Improvements in task performance are mainly dependent on production compilation, as the order and how efficiently the mathematical operations are performed are the main subject of the task.
 Utility learning matters mostly on production selection and ordering, however the task itself is mostly linear.
 It can still play a significant role if alternative or shortcut productions for mathematical operations exist.
-E.g. a production that swaps argument 1 and argument 2 in addition or multiplication may reduce time spend, dependent on how the algorithm functions.
+E.g.\ a production that swaps argument 1 and argument 2 in addition or multiplication may reduce time spend, dependent on how the algorithm functions.
 
 The subsymbolic system of ACT-R also involves mechanisms to gauge retrieval chance and activation strength in the declarative memory.
 This is used to model learning and retrieval of new memory chunks.
@@ -188,7 +252,7 @@ User input and trial change is detected from the model trace.
 The model works through the tasks with a set of productions, which perform mathematical operations, search the screen, input answers and organize order of operations.
 
 \subsection*{Greater/Less-than Operation}
-\todo[inline]{Maybe better as figure note or in appx. and simpler/shorter description}
+\todo[inline]{Maybe better as figure note or in appx.\ and simpler/shorter description}
 
 This pair operations compares two multi-digit numbers and sets the greater/less number as answer.
 For each digit (hundreds, tens, ones) there is a set of productions comparing that digit of the two numbers.
@@ -223,16 +287,18 @@ When the current operation is multiplication again and there are values in the s
 
 \subsection*{Subtraction Operation}
 
-\todo[inline]{Subtraction column-wise austrian method}
+The subtraction algorithm uses the austrian method, by checking for each digit if the subtrahend is greater than the minuend.
+If not, it can safely subtract the two digits and move to the next one.
+If yes, the subtraction will be done after increasing the minuend by 10.
+Additionally a carry variable will be set, which increases the subtrahend by 1 on the next digit.
 
 \subsection*{Motor System}
 
 The motor module is used to input the answers and to press continue.
 When the current operation is to type the answer, the first production requests the tens digit to be pressed on the keyboard.
-When the action is finished, the ones digit and spacebar to continue in turn are requested to be pressed.
+When the action is finished, the ones digit and spacebar to continue are requested to be pressed in turn.
 
 \subsection*{Visual System}
-\todo[inline]{not really feasable to describe each production, more general overview}
 
 The visual module is used for various operations to find the current task or to replace variables in a task with the values shown on the screen.
 The screen is organized in columns with headers, so the visual module first searches for the correct column by keyword.
@@ -277,6 +343,12 @@ Since operations use both the full numbers and their digits, a set of production
 
 \section*{Results}
 
+Without enabling the subsymbolic system and its learning algorithms, the average time the model takes to solve a specific procedure stays the same over the experiment (Figure~\ref{fig:RT}).
+This is expected; while each finished mathematical operation does get remembered by the model, the amount of argument with operation permutations is too high to be useful in this few trials.
+
+Due to multiple roadblocks in working with the subsymbolic system in pyactr, it was not possible not simulate a full experiment run with it enabled.
+Details about these difficulties will be reviewed in the Discussion.
+
 \begin{figure}[H]
     \centering
     \caption{Mean solution time in training and transfer phase}
-- 
cgit v1.2.3

