On April 21st – 22nd 2017, we held a workshop at Carnegie Mellon University, called What is Attention? The core organising group was Wayne Wu (Carnegie Mellon University), Britt Anderson (University of Waterloo), Rich Krauzlis (National Eye Institute), and myself Ben Vincent (University of Dundee). We had an esteemed set of attendees (see below) who […]

Continue readingMore Tag# Category: Blog Posts

## Confessions of a reforming Matlab-er

My name is Ben and I’m a self-taught programmer with no formal computer science training. A few years ago I gained the painful self-awareness that my scientific programming was shitty. I’m not saying it was wrong (I hope not) but it was just bad. I confused familiarity with my language of choice with proficiency. I had […]

Continue readingMore Tag## matlab rant 2

So I just read this great rant about Matlab by Olivia Guest, and it reminded me to update my previous rant about Matlab, so here it is. For the record, I don’t disagree with anything Olivia said, and I’m not overly defending Matlab. I am trapped in its local minima and am slowly reaching escape velocity, moving over […]

Continue readingMore Tag## new guest editorial piece out in Perception

A short viewpoint piece that Keith and I wrote just came out in Perception. Go check it out, it’s open access. May, K. A., & Vincent, B. T. (2016). Fewer Statistical Tests … or Better Ones? Perception. http://doi.org/10.1177/0301006616677909

Continue readingMore Tag## Review of research in 2016

I’ve been inspired by reading Tom Stafford’s 2016 research review. The amount of tangible outputs this year has not felt in proportion to the amount of effort being put in. This is obviously going to happen when projects take a while to complete, nevertheless there can be frustration and feelings of being ineffectual. I can […]

Continue readingMore Tag## Teaching tip: scatter matrix plots help students see the big picture

I recently went through a draft student project. While their literature review and understanding of pairwise relationships was great, the presentation of a complex literature and set of predictions wasn’t as clear as it could be. The apparent complexity or volume of things to talk about perhaps obscured the simple solution that (as a fresh pair […]

Continue readingMore Tag## A grammar of multi-panel scientific plots: initial thoughts

In common with many scientists, I have no formal training in computer science and my coding skills have been entirely self-taught. I’ve been coding for over a decade and a half, and I thought I was a relatively good programmer, but I had mistaken familiarity with expertise. And so recently I have been on a […]

Continue readingMore Tag## Bayesian analysis toolbox for delay discounting, version 1.3

Posterior predictive checks The toolbox now calculates 2 measures of “goodness of fit” of the models. This is a useful quantitative reassurance that the models describe the participant discounting behaviour better than chance. In turn, this is important when we come to deciding which (if any) data files we should exclude. You can go and […]

Continue readingMore Tag## Bayesian analysis toolbox for delay discounting, version 1.2

I’ve just released Version 1.2 of the toolbox ‘Bayesian analysis toolbox for delay discounting.’ The main feature of this release was the addition of new models. For example, you can now estimate discount rates (ignoring the magnitude effect). So you can obtain estimates of the discount rate k, which is very useful if your primary […]

Continue readingMore Tag## Probabilistic programming: a tentative first encounter

While I have some experience with probabilistic programming in the flavour of Bayesian Networks, and have published papers using them, I am interested in the super-class of generic probabilistic programs. That is, right now I am happy with conducting inference on Bayesian Networks, but I want to learn how to conduct inference on generic programs. As […]

Continue readingMore Tag## Slice sampling Matlab demo

So far we’ve had a look at rejection sampling and importance sampling. Here we take a quick look at slice sampling, although rather than implementing it ourselves, we will use the built in Matlab slicesample function. Using our parameter estimation example, we will use slice sampling to estimate the mean and sigma of some samples from […]

Continue readingMore Tag## useful tree command on mac

I found a simple way to produce tree-like listings of files/folders on the mac. This is a very useful tool to get an overview of some project code. You can install it simply (following instructions I found here). First, open a terminal and install Homebrew if you do not have it already. It’s a package […]

Continue readingMore Tag## Importance sampling Matlab demo

Importance sampling is related to rejection sampling, which I looked at in the last post. Here is a short demo. A problem of rejection sampling is that many samples could be evaluated in regions of low probability mass. This then lead to a high rate of attrition, with many samples being rejected. In importance sampling, this seems […]

Continue readingMore Tag## Rejection sampling Matlab demo

I’ve been using MCMC, but I’ve wanted to flesh out my knowledge and explore the space of sampling approaches a little more. One very simple, yet inefficient method, is rejection sampling. Here is a little Matlab example I put together after seeing how easy it was. Which results in this output. So we have a good […]

Continue readingMore Tag## Pimp your research code using UML class diagrams

Ideally, all research code should be made available at the point of submitting a paper. I’ve found that the way I write my research code has changed for the better now that I’ve made a commitment to making it open. However it can somewhat opaque and time consuming to understand, so how can we help those wanting to review, use, […]

Continue readingMore Tag## Where to publish Decision Making research

Some of my research has taken (and will continue to take) a decision making approach to low-level tasks in visual perception and visual attention. Recently however I have been working on some higher level decision making tasks and so I’ve been scoping out target journals and conferences. In this post I provide a brief list of suitable journals. […]

Continue readingMore Tag## Cognitive modelling 3: the importance of a script

One of the key things we must avoid is mess and confusion. In the last post I briefly covered one possible template for a research project. One of the reasons why cognitive modelling projects might be a little tricky is because you are not just using an off the shelf software package. For example, if […]

Continue readingMore Tag## Cognitive modelling 2: project structure

What we definitely want to do is avoid confusion and mess. Having a clear project structure and workflow has many advantages. While there is no one single correct way to organise a project, putting a bit of thought into it, and learning from past projects can help a lot. This is the workflow that works for […]

Continue readingMore Tag## Cognitive modelling 1: programming problems

This is the first post in a series exploring programming practice in cognitive modelling. While I have over a decade of experience in cognitive modelling, I am in no way an expert and have no formal computer science training. I am not an authority on this, I am feeling my way. Comments welcome. This post may […]

Continue readingMore Tag## Plotting posterior predictive distributions

I’ve just released a small bit of Matlab code on GitHub which helps automate the job of plotting posterior predictive distributions. If you are inferring posterior distributions of parameters of a 1D function (e.g. y=mx+c) then this code will plot the posterior predictive distribution for you. This should be handy for you to eyeball how well a model […]

Continue readingMore Tag