Study the effect of training-pattern variability on classification learning and generalization in the dot-pattern paradigm.
Procedure
Subjects trained to classify a set of training patterns into three categories.
Training patterns repeated across 10 training blocks with randomized presentation order within each block.
Four between-subject conditions varying by training pattern distortion levels: low, medium, high, and mixed distortions.
Each condition involved 27 training patterns (9 per category), generated by distorting category prototypes using the Posner-Keele (1968) statistical-distortion algorithm.
Feedback
Corrective feedback provided for 2 seconds below the presented pattern in the learning phase.
Testing Stage
Objective
Test classification of novel patterns and a subset of training patterns.
Procedure
Test patterns included 27 old distortions, 3 prototypes, 9 new low-level distortions, 18 new medium-level distortions, 27 new high-level distortions, and 3 additional high-level distortions.
Each pattern presented once in a random order, totaling 87 trials per subject.
Patterns displayed at the center of the screen and remained visible until a key press.
Distortion Levels
Generation
Category prototypes distorted using the Posner-Keele (1968) statistical-distortion algorithm.
Training patterns for four conditions generated with varying levels of distortion: low, medium, high, and mixed distortions.
Test patterns consisted of distortions across low, medium, and high levels, with additional hard-to-classify distortions.
---title: Fixed Prototype Pilotdate: last-modified#page-layout: fullformat: html: grid: sidebar-width: 220px body-width: 1200px margin-width: 170px gutter-width: 1.0remtoc: true#toc-location: righttoc-depth: 4code-fold: truecode-tools: truelightbox: trueexecute: warning: false eval: true---| Stage | Detail ||-------------------|--------------------------------------------------------|| **Training Stage**| || Objective | Study the effect of training-pattern variability on classification learning and generalization in the dot-pattern paradigm. || Procedure | Subjects trained to classify a set of training patterns into three categories. || | Training patterns repeated across 10 training blocks with randomized presentation order within each block. || | Four between-subject conditions varying by training pattern distortion levels: low, medium, high, and mixed distortions. || | Each condition involved 27 training patterns (9 per category), generated by distorting category prototypes using the Posner-Keele (1968) statistical-distortion algorithm. || Feedback | Corrective feedback provided for 2 seconds below the presented pattern in the learning phase. || **Testing Stage** | || Objective | Test classification of novel patterns and a subset of training patterns. || Procedure | Test patterns included 27 old distortions, 3 prototypes, 9 new low-level distortions, 18 new medium-level distortions, 27 new high-level distortions, and 3 additional high-level distortions. || | Each pattern presented once in a random order, totaling 87 trials per subject. || | Patterns displayed at the center of the screen and remained visible until a key press. || **Distortion Levels** | || Generation | Category prototypes distorted using the Posner-Keele (1968) statistical-distortion algorithm. || | Training patterns for four conditions generated with varying levels of distortion: low, medium, high, and mixed distortions. || | Test patterns consisted of distortions across low, medium, and high levels, with additional hard-to-classify distortions. |<details><summary><b> Mingjia's Report {{< fa file-lines >}} </b></summary>```{=html}<embed src="/reports/technical_report_v1.pdf" width="1000px" height="900px" />```</details>```{r}pacman::p_load(dplyr,purrr,tidyr,ggplot2, here, patchwork, conflicted, knitr,grateful)conflict_prefer_all("dplyr", quiet =TRUE)source(here::here("R/fun_plot.R"))fp24 <-readRDS(here("data","fixed_proto24.rds"))theme_set(theme_nice_b())yt <-round(seq(0,1,length.out=7), 2)xt <-seq(1,10,1)eg <-list(geom_hline(yintercept =c(.33, .66),linetype="dashed", alpha=.5),scale_y_continuous(breaks=yt,limits=c(0,1)),scale_x_continuous(breaks=xt))``````{r}#| layout-ncol: 2 fp24 |>filter(Phase==2) |>group_by(sbjCode, condit, Pattern_Token) |>summarize(Corr=mean(Corr)) |>ggplot(aes(x=Pattern_Token, y=Corr, fill=condit, group=condit)) +stat_summary(geom="bar",fun=mean, position=position_dodge())+stat_summary(geom="errorbar", fun.data=mean_se, position=position_dodge()) +labs(title="Testing Performance - Fixed Proto.", y="Accuracy") fp24 |>filter(Phase==2) |>group_by(sbjCode, condit, Pattern_Token) |>summarize(Corr=mean(Corr)) |>ggplot(aes(x=condit, y=Corr, fill=Pattern_Token, group=Pattern_Token)) +stat_summary(geom="bar",fun=mean, position=position_dodge())+stat_summary(geom="errorbar", fun.data=mean_se, position=position_dodge()) +labs(title="Testing Performance - Fixed Proto.", y="Accuracy") fp24 |>filter(Phase==1) |>group_by(sbjCode, condit, Pattern_Token,Block) |>summarize(Corr=mean(Corr),.groups="keep") |>ggplot(aes(x=Block, y=Corr, col=condit, group=condit)) +stat_summary(geom="line",fun=mean)+stat_summary(geom="errorbar", fun.data=mean_se,width=.1) +labs(title="Training Performance.", y="Accuracy") +#eg + theme(legend.position ="top") + eg```