I suppose in the formal sense they are not necessarily intercept and slope coefficients. Here is a quick simulation of a non-linear model **without using a multi-level structure**.

```
library(tidyverse)
library(brms)
N <- 1200
x <- runif(N, 1, 20)
a <- 50
b <- -1.3
y_true <- a * x^b
sigma <- 3
y <- rnorm(N, y_true, sigma)
dat <- tibble(x, y)
fit <- brm(bf(y ~ a*x^b, nl = TRUE,
a ~ 1, b ~ 1),
data = dat, family = gaussian(),
prior = c(prior(normal(40, 10), nlpar = "a"),
prior(normal(-2, 1), nlpar = "b")),
cores = 24)
summary(fit)
#> Family: gaussian
#> Links: mu = identity; sigma = identity
#> Formula: y ~ a * x^b
#> a ~ 1
#> b ~ 1
#> Data: dat (Number of observations: 1200)
#> Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
#> total post-warmup samples = 4000
#>
#> Population-Level Effects:
#> Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
#> a_Intercept 50.56 0.66 49.24 51.83 2169 1.00
#> b_Intercept -1.33 0.02 -1.37 -1.30 2231 1.00
#>
#> Family Specific Parameters:
#> Estimate Est.Error l-95% CI u-95% CI Eff.Sample Rhat
#> sigma 3.01 0.06 2.90 3.13 3038 1.00
#>
#> Samples were drawn using sampling(NUTS). For each parameter, Eff.Sample
#> is a crude measure of effective sample size, and Rhat is the potential
#> scale reduction factor on split chains (at convergence, Rhat = 1).
plot(marginal_effects(fit), points = TRUE)
```

^{Created on 2019-07-24 by the reprex package (v0.3.0)}

I think I understand better your question and the confusion of intercept in the model output. The population-level effects show an `a_Intercept`

and `b_Intercept`

those are just the estimates of your coefficients in your non-linear model.

In this case `a`

is the “intercept” at the point the data begins and `b`

is the curving coefficient. I believe that `brms`

labels them as `x_Intercept`

because you are essentially fitting two intercept only models on each separate non-linear coefficient (hence `a ~ 1`

and `b ~ 1`

in the formula statement). I could be wrong on this though.

In the case of applying a random-intercept model, you will get many different values for `a_Intercept`

but they will all share the same `b_Intercept`

value. This is my vague understanding as I don’t have much experience in multi-level modeling.